【发布时间】:2012-03-23 20:07:27
【问题描述】:
我有一个 GridView“gvpodetails”。我有两个复选框,一个在 GridView 的第一列,另一个在 GridView 的最后一列。
我想在选中第一个复选框时启用第二个复选框。 当第一个复选框未选中时,我想禁用第二个复选框。
我编写了以下 JavaScript。
var grid = document.getElementById('<%=gvPODetails.ClientID %>');
var PlannedQty = 0*1;
if(grid != null)
{
var Inputs = grid.getElementsByTagName('input');
for(i = 0;i < Inputs.length;i++)
{
var id=String(Inputs[i].id);
if(Inputs[i].type == 'text' && id.indexOf("txtPlannedQuantity")!=-1)
{
if(Inputs[i-2].type == 'checkbox')
{
if(Inputs[i-2].checked)
{
if(Inputs[i+2].value == "0.000")
Inputs[i+2].value = (parseFloat(Inputs[i].value) - parseFloat(Inputs[i+1].value))
else
Inputs[i+2].value = Inputs[i+2].value;
Inputs[i+2].disabled = false;
Inputs[i+3].disabled = false;
Inputs[i-1].disabled = false;
Inputs[i+6].disabled = false;// This is for Second CheckBox
}
else
{
Inputs[i+4].value="0.00";
Inputs[i+5].value="0.00";
Inputs[0].checked = false;
Inputs[i+2].disabled = true;
Inputs[i+3].disabled = true;
Inputs[i-1].disabled = true;
Inputs[i+6].disabled = true;// This is for Second CheckBox
}
}
}
}
}
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" Checked='<%#Bind("Select") %>' onClick="CheckedTotal();" /></ItemTemplate>
<HeaderTemplate>
<asp:CheckBox ID="chkSelectAll" runat="server" onclick="CheckAll();" /></HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ED_f">
<ItemTemplate>
<asp:CheckBox ID="chkEDInclusive" runat="server" Checked = '<%#Bind("EDInclusive_f") %>' Enabled="false" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
这些是我的 javascript 和 GridView 源代码。 我在模板字段列中也有一些文本框。此条件适用于 GridView 中的所有文本框。 但是除了最后一个 CheckBox 之外,TextBoxes 被正确启用和禁用。 我只给出了两个复选框的源代码。 当第一个 CheckBox 被选中和未选中时,如何启用和禁用 GridView 中的最后一个复选框? 我需要你的所有建议..
【问题讨论】:
标签: javascript asp.net visual-studio-2008