我有一个独特的情况。我在gridview中添加了几个复选框,它们是从数据库中填充的。它们在itemtemplate模式下看起来非常好。当我单击“编辑”按钮并渲染它们时,它们会松开所有设置并显示为未选中的框。如何在编辑模式下显示edititemtemplate复选框之前填充它们? 以下是aspx页面中的代码片段:
<asp:TemplateField HeaderText="Referral">
<ItemTemplate>
<asp:CheckBox ID="CheckBox7" runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox10" runat="server" />
</EditItemTemplate>
</asp:TemplateField>
以下是此复选框背后的代码,用于填充这些itemtemplate复选框:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//load the referral column from the form3 data column to display the results
TextBox txtReferral = (TextBox)e.Row.FindControl("TextBox82"); //form1
if (txtReferral != null)
{
CheckBox ckbxReferral = (CheckBox)e.Row.FindControl("CheckBox7");
ckbxReferral.Enabled = false;
if (txtReferral.Text.Length > 0)
{
int intReferral = Convert.ToInt32(txtReferral.Text.ToString());
if (intReferral > 0)
{
if (!ckbxReferral.Checked)
{
ckbxReferral.Checked = true;
}
intReferral = 0;
}
}
}
}
我试图设置editemtemplate复选框,但由于它们当前是空对象,所以没有运气。我是.net编程的新手,所以任何帮助都将不胜感激。我的最终目标是使用复选框的结果从这些结果中填充另外两个子表。
答案 0 :(得分:0)
您需要在itemtemplate和edititemtemplate中保持复选框控件的ID相同:
<asp:TemplateField HeaderText="Referral">
<ItemTemplate>
<asp:CheckBox ID="CheckBox7" runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="CheckBox7" runat="server" />
</EditItemTemplate>
</asp:TemplateField>