在编辑模式下渲染(可见)之前,如何修改edititemtemplate无界复选框?

时间:2016-10-26 13:37:40

标签: c# asp.net checkbox

我有一个独特的情况。我在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编程的新手,所以任何帮助都将不胜感激。我的最终目标是使用复选框的结果从这些结果中填充另外两个子表。

1 个答案:

答案 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>