您的位置:首页 > 其它

GridView控件中加入动态生成的控件

2007-11-09 16:03 525 查看
前台代码如下:
<asp:GridView ID="testDatagrid" runat="server" AutoGenerateColumns="False" OnRowDataBound="testDatagrid_RowDataBound" Width="294px" Height="134px">
<Columns>
<asp:CheckBoxField HeaderText="可选" />

<asp:BoundField DataField="ToolName" HeaderText="text" />
<asp:TemplateField HeaderText="数量"></asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="数据的更新" />

后台代码实现如下:
#region GridView绑定动态生成的控件
protected void testDatagrid_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowIndex > -1)
{

CheckBox check = new CheckBox();
check.ID = e.Row.RowIndex.ToString();
check.AutoPostBack = true;
check.CheckedChanged += new EventHandler(check_CheckedChanged);

e.Row.Cells[0].Controls.Add(check);

TextBox text = new TextBox();
text.Width = 15;
text.ID = "txt" + e.Row.RowIndex.ToString();
text.Enabled = false;

e.Row.Cells[2].Controls.Add(text);
HiddenField hidden = new HiddenField();
hidden.Value = da.Tables[0].Rows[e.Row.RowIndex][0].ToString();
hidden.ID = "Hidd" + e.Row.RowIndex.ToString();
e.Row.Cells[2].Controls.Add(hidden);
}

}
#endregion
#region 处理checkbox所触发的事件
void check_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(((CheckBox)sender).ID);
TextBox box = this.testDatagrid.Rows[i].Cells[2].FindControl("txt" + i.ToString()) as TextBox;
box.Enabled = true;
}
#endregion
#region 将客户所选的数据插入数据库
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < this.testDatagrid.Rows.Count; i++)
{
CheckBox chB = this.testDatagrid.Rows[i].Cells[0].FindControl(i.ToString()) as CheckBox;
TextBox txB = this.testDatagrid.Rows[i].Cells[2].FindControl("txt" + i.ToString()) as TextBox;
HiddenField hid = this.testDatagrid.Rows[i].Cells[2].FindControl("Hidd" + i.ToString()) as HiddenField;
int ii = -1;
if (chB.Checked)
{
if (txB.Text != null)
{
try
{
//引用 DataBase.dll
ii = new ZHXKDatabase(connStr).RunSQLCommandReturnInt("insert into Relation (ToolsID,TagID,[Desc]) values (" + hid.Value + "," + 12 + "," + int.Parse(txB.Text.Trim()) + ")");
}
catch (Exception exc)
{
Response.Write(exc.Message);

}
}
if (ii == 1)
{
Response.Write("OK!");
}
}
}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: