无法访问服务器端编码的复选框

时间:2011-05-08 15:38:53

标签: asp.net

以下是我的gridview,

<asp:GridView ID="gridview1" AutoGenerateColumns="False" runat="server" 
         EnableModelValidation="True" >
      <Columns>
      <asp:CommandField ButtonType="Link" HeaderText="Delete"  InsertImageUrl="~/_layouts/images/TBS.WebParts/Button-Delete-icon.png" ShowDeleteButton="true"/>
<asp:BoundField HeaderText ="Size" DataField="FileSize" />
<asp:BoundField HeaderText ="File" DataField="Size" />
<asp:TemplateField HeaderText="SupportIncluded">
<ItemTemplate>
<asp:CheckBox ID="Checkbox1" runat="server" Checked="false" />
</ItemTemplate>


       

现在在服务器端,我想检查是否在“提交”按钮点击事件上选中了复选框。

 private void btnSubmit_Click(object sender, EventArgs e)
    {
        if (IsValidPost())
        {
            bool flag = false;
            for( int i=0; i < gridview1.Rows.Count ; i++)
            {
                if(dgdUpload.Rows[i].FindControl("Checkbox1"),CheckBox).Checked) erorr here...I also tried ....if(Checkbox1.checked)...but unable to access Checkbox1..it says it does not exist in the current context....


                flag = true;
            }
            if(flag)
            {
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

您不仅需要访问行,还需要访问模板字段控件。另一种选择是开发自己的FindControl递归版本,在整个树上进行搜索而不只是在一个层次上进行搜索。

类似的东西:

dgdUpload.Rows[i].Controls[5].FindControl("Checkbox1")

如果我正确计算了gridview中的列,那么5应该是模板字段的索引。