viewstate和datatable動態(tài)錄入數(shù)據(jù)示例
<%@ 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)
{
//創(chuàng)建 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="添加內(nèi)容" OnClick="LinkButton1_Click"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" Text="刪除內(nèi)容" OnClick="LinkButton2_Click"></asp:LinkButton>
</form>
</body>
</html>
- asp.net 生成靜態(tài)時的過濾viewstate的實現(xiàn)方法
- asp.net 去除viewstate
- asp.net 禁用viewstate在web.config里
- asp.net viewstate 回發(fā)機制
- asp.net生成靜態(tài)后冗余代碼,去掉viewstate生成的代碼
- 使用正則Regex來移除網(wǎng)頁的EnableViewState實現(xiàn)思路及代碼
- 狀態(tài)保存機制之ViewState概述及應(yīng)用
- 禁止ViewState的3種解決方法
- asp.net中ViewState的用法詳解
- ASP.NET中控件的EnableViewState屬性及徹底禁用
相關(guān)文章
asp.net 在global中攔截404錯誤的實現(xiàn)方法
asp.net 在global中攔截404錯誤,增加用于體驗,不會因為提示找不到信息而直接退出的尷尬。2010-03-03ASP.NET Core 2.1 使用Docker運行的方法步驟
這篇文章主要介紹了ASP.NET Core 2.1 使用Docker運行的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07動態(tài)ItemTemplate的實現(xiàn)(譯) - item,template
動態(tài)ItemTemplate的實現(xiàn)(譯) - item,template...2007-02-02淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié)
這篇文章主要介紹了淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié),以便在實際的開發(fā)中選用合適的控件進(jìn)行數(shù)據(jù)綁定,以提高開發(fā)效率。2016-12-12.NET?6新特性試用之TryGetNonEnumeratedCount?方法
這篇文章主要介紹了.NET?6新特性試用TryGetNonEnumeratedCount,這個方法可計算可枚舉類型的元素總數(shù),下面來看看具體的使用方式吧,需要的朋友可以參考一下2022-03-03asp.net StreamReader 創(chuàng)建文件的實例代碼
這篇文章介紹了asp.net StreamReader 創(chuàng)建文件的實例代碼,有需要的朋友可以參考一下2013-07-07深入Lumisoft.NET組件開發(fā)碰到亂碼等問題的解決方法
本篇文章介紹了,在Lumisoft.NET組件開發(fā)中碰到亂碼等一些問題的解決方法。需要的朋友參考下2013-05-05.NET開發(fā)人員關(guān)于ML.NET的入門學(xué)習(xí)
隨著谷歌,F(xiàn)acebook發(fā)布他們的工具機器學(xué)習(xí)工具Tensorflow 2和PyTorch,微軟也發(fā)布了ML.NET 1.0??梢哉f2019年是機器學(xué)習(xí)社區(qū)普及化的一年,下面小編向大家簡單介紹一下關(guān)于ML.NET的入門學(xué)習(xí)2019-05-05詳細(xì)介紹.NET中的動態(tài)編譯技術(shù)
這篇文章詳細(xì)介紹了.NET中的動態(tài)編譯技術(shù),有需要的朋友可以參考一下2013-11-11