viewstate和datatable動態錄入資料樣本

來源:互聯網
上載者:User

 這篇文章主要介紹了viewstate和datatable動態錄入資料樣本,需要的朋友可以參考下

  代碼如下:<%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  private DataTable stoveTable = null;  protected void Page_Load(object sender, EventArgs e)  {    if (!Page.IsPostBack)    {      //建立 EmptyDataTemplate      this.GridView_list.DataBind();    }  }   protected void GridView_list_RowDataBound(object sender, GridViewRowEventArgs e)  {    if (e.Row.RowType == DataControlRowType.DataRow)    {      String usage = DataBinder.Eval(e.Row.DataItem, "usage").ToString();      String steelKind = DataBinder.Eval(e.Row.DataItem, "steelKind").ToString();      String castingTon = DataBinder.Eval(e.Row.DataItem, "castingTon").ToString();      DropDownList x1 = e.Row.FindControl("x1") as DropDownList;      DropDownList x2 = e.Row.FindControl("x2") as DropDownList;      TextBox x3 = e.Row.FindControl("x3") as TextBox;      x3.Text = castingTon;      ListItem xx1 = x1.Items.FindByValue(usage);      if (xx1 != null) xx1.Selected = true;      ListItem xx2 = x2.Items.FindByValue(steelKind);      if (xx2 != null) xx2.Selected = true;    }  }   protected void LinkButton1_Click(object sender, EventArgs e)  {    DropDownList x1, x2;    TextBox x3;    if (GridView_list.Rows.Count == 0)    {      x1 = GridView_list.Controls[0].Controls[0].FindControl("x1") as DropDownList;      x2 = GridView_list.Controls[0].Controls[0].FindControl("x2") as DropDownList;      x3 = GridView_list.Controls[0].Controls[0].FindControl("x3") as TextBox;    }    else    {      GridViewRow r = GridView_list.FooterRow;      x1 = r.FindControl("x1") as DropDownList;      x2 = r.FindControl("x2") as DropDownList;      x3 = r.FindControl("x3") as TextBox;    }    if (ViewState["dt"] == null)    {      stoveTable = new DataTable();      stoveTable.Columns.Add("usage", typeof(String));      stoveTable.Columns.Add("steelKind", typeof(String));      stoveTable.Columns.Add("castingTon", typeof(String));    }    else    {      stoveTable = (DataTable)ViewState["dt"];    }    DataRow newRow = stoveTable.NewRow();    newRow["usage"] = x1.SelectedValue;    newRow["steelKind"] = x2.SelectedValue;    newRow["castingTon"] = x3.Text;    stoveTable.Rows.Add(newRow);     ViewState["dt"] = stoveTable;    this.GridView_list.DataSource = stoveTable;    this.GridView_list.DataBind();   }  protected void LinkButton2_Click(object sender, EventArgs e)  {    if (ViewState["dt"] == null)    {      return;    }    stoveTable = (DataTable)ViewState["dt"];    if (stoveTable.Rows.Count < 1) return;    stoveTable.Rows.RemoveAt(stoveTable.Rows.Count - 1);    ViewState["dt"] = stoveTable;    this.GridView_list.DataSource = stoveTable;    this.GridView_list.DataBind();  }   protected void x1_SelectedIndexChanged(object sender, EventArgs e)  {    DropDownList x1 = sender as DropDownList;    GridViewRow r = x1.Parent.Parent as GridViewRow;    if (ViewState["dt"] == null)    {      Response.Write("Error");      return;    }    stoveTable = (DataTable)ViewState["dt"];    stoveTable.Rows[r.RowIndex]["usage"] = x1.SelectedValue;    ViewState["dt"] = stoveTable;    this.GridView_list.DataSource = stoveTable;    this.GridView_list.DataBind();  }   protected void x2_SelectedIndexChanged(object sender, EventArgs e)  {    DropDownList x2 = sender as DropDownList;    GridViewRow r = x2.Parent.Parent as GridViewRow;    if (ViewState["dt"] == null)    {      Response.Write("Error");      return;    }    stoveTable = (DataTable)ViewState["dt"];    stoveTable.Rows[r.RowIndex]["steelKind"] = x2.SelectedValue;    ViewState["dt"] = stoveTable;    this.GridView_list.DataSource = stoveTable;    this.GridView_list.DataBind();  }   protected void x3_TextChanged(object sender, EventArgs e)  {     TextBox x3 = sender as TextBox;    GridViewRow r = x3.Parent.Parent as GridViewRow;    if (ViewState["dt"] == null)    {      Response.Write("Error");      return;    }    stoveTable = (DataTable)ViewState["dt"];    stoveTable.Rows[r.RowIndex]["castingTon"] = x3.Text;    ViewState["dt"] = stoveTable;    this.GridView_list.DataSource = stoveTable;    this.GridView_list.DataBind();  }</script><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server">  <title></title></head><body>  <form id="form1" runat="server">  <asp:GridView ID="GridView_list" runat="server" ShowFooter="true" AutoGenerateColumns="false"    OnRowDataBound="GridView_list_RowDataBound">    <EmptyDataTemplate>      <table style="border-collapse: collapse; width: 100%" cellspacing="0" rules="all"        border="1">        <tr>          <th scope="col">            選擇1          </th>          <th scope="col">            選擇2          </th>          <th scope="col">            輸入文字          </th>        </tr>        <tr><td>          <asp:DropDownList ID="x1" runat="server">            <asp:ListItem>L0</asp:ListItem>            <asp:ListItem>L1</asp:ListItem>            <asp:ListItem>L2</asp:ListItem>            <asp:ListItem>L3</asp:ListItem>          </asp:DropDownList>        </td><td>          <asp:DropDownList ID="x2" runat="server">            <asp:ListItem>10#</asp:ListItem>            <asp:ListItem>20#</asp:ListItem>            <asp:ListItem>30#</asp:ListItem>            <asp:ListItem>40#</asp:ListItem>          </asp:DropDownList>        </td><td>          <asp:TextBox ID="x3" runat="server"></asp:TextBox>        </td></tr>      </table>    </EmptyDataTemplate>    <Columns>      <asp:TemplateField HeaderText="選擇1">        <ItemTemplate>          <asp:DropDownList ID="x1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="x1_SelectedIndexChanged">            <asp:ListItem>L0</asp:ListItem>            <asp:ListItem>L1</asp:ListItem>            <asp:ListItem>L2</asp:ListItem>            <asp:ListItem>L3</asp:ListItem>          </asp:DropDownList>        </ItemTemplate>        <FooterTemplate>          <asp:DropDownList ID="x1" runat="server">            <asp:ListItem>L0</asp:ListItem>            <asp:ListItem>L1</asp:ListItem>            <asp:ListItem>L2</asp:ListItem>            <asp:ListItem>L3</asp:ListItem>          </asp:DropDownList>        </FooterTemplate>      </asp:TemplateField>      <asp:TemplateField HeaderText="選擇2">        <ItemTemplate>          <asp:DropDownList ID="x2" runat="server" AutoPostBack="true" OnSelectedIndexChanged="x2_SelectedIndexChanged">            <asp:ListItem>10#</asp:ListItem>            <asp:ListItem>20#</asp:ListItem>            <asp:ListItem>30#</asp:ListItem>            <asp:ListItem>40#</asp:ListItem>          </asp:DropDownList>        </ItemTemplate>        <FooterTemplate>          <asp:DropDownList ID="x2" runat="server">            <asp:ListItem>10#</asp:ListItem>            <asp:ListItem>20#</asp:ListItem>            <asp:ListItem>30#</asp:ListItem>            <asp:ListItem>40#</asp:ListItem>          </asp:DropDownList>        </FooterTemplate>      </asp:TemplateField>      <asp:TemplateField HeaderText="輸入文字">        <ItemTemplate>          <asp:TextBox ID="x3" runat="server" AutoPostBack="true" OnTextChanged="x3_TextChanged"></asp:TextBox>        </ItemTemplate>        <FooterTemplate>          <asp:TextBox ID="x3" runat="server"></asp:TextBox>        </FooterTemplate>      </asp:TemplateField>    </Columns>  </asp:GridView>  <asp:LinkButton ID="LinkButton1" runat="server" Text="新增內容" OnClick="LinkButton1_Click"></asp:LinkButton>  <asp:LinkButton ID="LinkButton2" runat="server" Text="刪除內容" OnClick="LinkButton2_Click"></asp:LinkButton>  </form></body></html> 
相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。