foreach (DataRow row in ResultSet.Tables[0].Rows)
{
TableRow tr = new TableRow();
TableCell tc = new TableCell(); TextBox tbpingfen = new TextBox();
tbpingfen.Text = row["Value"].ToString();
tbpingfen.ID = row["pk_hr_pf_Indexes"].ToString(); tc.Controls.Add(tbpingfen);
tr.Cells.Add(tc); Tableziwo.Rows.Add(tr);
}
(代码我简化了,明白意思就行)循环创建行,这里行只有一列,是textbox
把行加到table中去然后 string id = 之前创建textbox的id
TextBox tb = (TextBox)tableziwo.FindControl(id);
string tbv = tb.Text;
根据textbox的id找到textbox
点击LinkButton把数据update到数据库点LinkButton 是找不到textbox的 因为更新了, 之前动态创建的textbox都没了~里面的值更是没了~~
这种情况要怎么办???各位大侠 求解决~
{
TableRow tr = new TableRow();
TableCell tc = new TableCell(); TextBox tbpingfen = new TextBox();
tbpingfen.Text = row["Value"].ToString();
tbpingfen.ID = row["pk_hr_pf_Indexes"].ToString(); tc.Controls.Add(tbpingfen);
tr.Cells.Add(tc); Tableziwo.Rows.Add(tr);
}
(代码我简化了,明白意思就行)循环创建行,这里行只有一列,是textbox
把行加到table中去然后 string id = 之前创建textbox的id
TextBox tb = (TextBox)tableziwo.FindControl(id);
string tbv = tb.Text;
根据textbox的id找到textbox
点击LinkButton把数据update到数据库点LinkButton 是找不到textbox的 因为更新了, 之前动态创建的textbox都没了~里面的值更是没了~~
这种情况要怎么办???各位大侠 求解决~
你没看明白意思 我点LinkButton 要保存的时候 页面刷新了 数据全没了~ 找不到textbox了 更找不到textbox里的数据了~~~~
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("str1") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("str2") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("str3") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="增加行" />
<asp:Button ID="Button2" runat="server" Text="删除行" onclick="Button2_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
for (int i = 0; i < 5; i++)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
}
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
} protected void Button1_Click(object sender, EventArgs e)
{
// 行号
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
foreach (GridViewRow item in this.GridView1.Rows)
{
DataRow dr = dt.NewRow();
dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text;
dr["str2"] = ((TextBox)item.Cells[1].FindControl("TextBox2")).Text;
dr["str3"] = ((TextBox)item.Cells[2].FindControl("TextBox3")).Text;
dt.Rows.Add(dr);
}
dt.Rows.InsertAt(dt.NewRow(), row+1);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
} protected void Button2_Click(object sender, EventArgs e)
{
// 行号
int row = ((GridViewRow)((Button)sender).NamingContainer).RowIndex;
DataTable dt = new DataTable();
dt.Columns.Add("str1");
dt.Columns.Add("str2");
dt.Columns.Add("str3");
foreach (GridViewRow item in this.GridView1.Rows)
{
DataRow dr = dt.NewRow();
dr["str1"] = ((TextBox)item.Cells[0].FindControl("TextBox1")).Text;
dr["str2"] = ((TextBox)item.Cells[1].FindControl("TextBox2")).Text;
dr["str3"] = ((TextBox)item.Cells[2].FindControl("TextBox3")).Text;
dt.Rows.Add(dr);
}
dt.Rows.RemoveAt(row);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
直接拷贝粘贴测试<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server"> protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 6; i++)
{
TableRow tr = new TableRow();
TableCell td = new TableCell();
TextBox t = new TextBox();
t.ID = "TextBox" + i.ToString();
td.Controls.Add(t);
tr.Cells.Add(td);
Table1.Rows.Add(tr);
}
}
} protected void LinkButton1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 6; i++)
{
Response.Write("<li>你输入的是:" + Request.Form["TextBox" + i]);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
</head>
<body>
<form id="form1" runat="server">
<asp:Table ID="Table1" runat="server">
</asp:Table>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
</form>
</body>
</html>
能解释一下代码么? 为什么load 和click 事件都在script里~ 还有 ,这个在web用户控件里能实现吗?
然后linkbutton点击后,textbox就不会消失了!
或者使用updatepanel试试!还有就是创建客户端控件,用request获取值!
我要根据用户点击 treeview后 得到数据 然后才能知道有多少条数据 我就创建多少个textbox
这个要怎么放到page——load里?
我做的是WEB用户控件 貌似不能通过Request.Form 取到值~~