在 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
当我将复选框从模板字段中移出时,完全没有问题。但在里面,似乎无法访问它。
如果有人能帮我解决这个问题那就太好了!!
亲切的问候,
马尔特
这是因为当控件放置在网格中时,它们没有在设计器文件中声明为页面控件。
根据发生的事件,您必须以不同的方式获取它们:
- 控制回发即 OnCheckedChanged:发件人对象将是您的复选框
- 行事件,例如OnItemDataBound、OnRowInsert 等:您可以使用 e.Item.FindControl("addCB");
获取复选框
我在访问嵌套在网格中的 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
当我将复选框从模板字段中移出时,完全没有问题。但在里面,似乎无法访问它。
如果有人能帮我解决这个问题那就太好了!!
亲切的问候,
马尔特
这是因为当控件放置在网格中时,它们没有在设计器文件中声明为页面控件。
根据发生的事件,您必须以不同的方式获取它们:
- 控制回发即 OnCheckedChanged:发件人对象将是您的复选框
- 行事件,例如OnItemDataBound、OnRowInsert 等:您可以使用 e.Item.FindControl("addCB"); 获取复选框