在 editform 中访问 control/Checkbox

accessing control/Checkbox in editform

我在访问嵌套在网格中的 editForm 模板中的 Checkbox 时遇到问题。

 <EditFormSettings EditFormType="Template" EditColumn-UniqueName="insertForm">
                            <FormTemplate>  
                                <table>


                                    <tr>                                           
                                    <td>Add : </td>
                                    <td>
                                          <asp:CheckBox runat="server" ID="addCB" />

                                    </td>                                                                      
                                </tr>                                    
                                <tr>

                            </table> 
                        </FormTemplate>
                    </EditFormSettings>  

EditFormTemplate 就像我说的,嵌套在一个网格中。我只是没有post这里,让它更清楚。

我现在的问题是我既不能通过 javascript 访问复选框,例如:

function isAddSwitched() {

         var checkbox = $find("<%= addCB.ClientID%>");
            alert(checkbox.get_checked());
        }

我也不能像这样通过隐藏代码访问它:

If addCB.Checked Then
                    'code here
                End If

当我将复选框从模板字段中移出时,完全没有问题。但在里面,似乎无法访问它。

如果有人能帮我解决这个问题那就太好了!!

亲切的问候,

马尔特

这是因为当控件放置在网格中时,它们没有在设计器文件中声明为页面控件。

根据发生的事件,您必须以不同的方式获取它们:

  1. 控制回发即 OnCheckedChanged:发件人对象将是您的复选框
  2. 行事件,例如OnItemDataBound、OnRowInsert 等:您可以使用 e.Item.FindControl("addCB");
  3. 获取复选框