我有一个名为DetailsView1的DetailsView
如下,其中DropDownList
名为SupplierDD,CheckBox
名为ApprovedCB。
<asp:DetailsView ID="DetailsView1 " runat="server" Width="70%" AutoGenerateRows="False" DataKeyNames="ID" DataSourceID="DetailsViewDS "
DefaultMode="Edit">
<Fields>
<asp:TemplateField HeaderText="Supplier">
<EditItemTemplate>
<asp:DropDownList runat="server" ID="SupplierDD"/>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Approved" SortExpression="ApprovedForOrderFromSupplier">
<EditItemTemplate>
<asp:CheckBox runat="server" ID="ApprovedCB" OnClick="return CheckIfSupplierIsSelected(this);" Checked='<%# Bind("ApprovedForOrderFromSupplier") %> />
..................
我有以下的JavaScript代码
<script type="text/javascript">
function CheckIfSupplierIsSelected(cb) {
var detailsView = document.getElementById('<%= DetailsView1.ClientID %>');
var supplierDD1 = detailsView.getElementById('<%= SupplierDD.ClientID %>');
//var supplierDD2 = detailsView.child.getElementById('<%= SupplierDD.ClientID %>'); //have tried this way too
if (cb.checked === true) {
alert("checked");
return true;
} else {
alert("unchecked");
return true;
}
}
</script>
我得到的错误是当前上下文中不存在SupplierDD这个名称。任何人都可以帮助我知道如何在JavaScript中声明新的SupplierDD。我已经尝试了几种方法,正如您在JavaScript中可以看到的那样,以获得SupplierDD。我显然对Checkbox
没有问题,因为它是通过CheckBox
中的JavaScript方法调用传递的。
答案 0 :(得分:0)
而不是使用以下行 -
var supplierDD1 = detailsView.getElementById('<%= SupplierDD.ClientID %>');
尝试使用jQuery find selector -
var supChk = detailsView.find('<%= SupplierDD.ClientID %>');