无法将转发器 Container.ItemIndex 作为参数传递给 javascript 函数
Not able to pass repeater Container.ItemIndex to javascript function as an argument
<script type="text/javascript" language="javascript">
function EnableDisablePkgInclusionDropDown(val) {
alert("RowIndex: " + val);
var repeater = document.getElementById('<%= pnlrptPckgInclusions.ClientID %>');
var dropdowns = repeater.getElementsByTagName('select');
dropdowns[val].disabled = true;
dropdowns[val].selectedIndex = "0";
}
</Script>
<asp:Repeater runat="server" ID="rptPckgInclusions">
<HeaderTemplate>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td align="left" style="width: 20%; text-align: left">
Parent MarkUp
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td align="center" style="width: 20%;">
<asp:CheckBox runat="server" ID="chkApplyParentMarkUp" OnClick="javascript:EnableDisablePkgInclusionDropDown(<%# Container.ItemIndex %>);"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
我正在尝试将 container.ItemIndex 作为参数传递给复选框 OnClick 事件上的 javascript 函数 enable/disable 少数 controls.But 它没有显示 [=21 中的值=]函数。
提前致谢!
首先要小心 JS 函数中的组件命名(pnlrptPckgInclusions != rptPckgInclusions)
在此之后,您将 OnClick 处理程序更改为此
OnClick='<%# "javascript:EnableDisablePkgInclusionDropDown(" + Container.ItemIndex + ")" %>'
应该有帮助。祝你有美好的一天!
我想提出我的方法。
只需在标记中添加一个属性 name='<%# Container.ItemIndex %>' 即可。
例如,
<ItemTemplate>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td align="center" style="width: 20%;">
<asp:CheckBox runat="server" ID="chkFoo" OnClick="Test(this)" name='<%# Container.ItemIndex %>'/>
</td>
</tr>
</table>
</ItemTemplate>
现在,在 javascript 方法 Test(this) 中,您可以使用 'this.name'.
获取转发器行索引
或者,如果您观察生成的标记 html,您会发现复选框的 ID 生成为 'ConetentPlaceholder1_rptTest_chkFoo_0。
您可以在 javascript 方法中拆分此 id 以获得转发器行索引。
<script type="text/javascript" language="javascript">
function EnableDisablePkgInclusionDropDown(val) {
alert("RowIndex: " + val);
var repeater = document.getElementById('<%= pnlrptPckgInclusions.ClientID %>');
var dropdowns = repeater.getElementsByTagName('select');
dropdowns[val].disabled = true;
dropdowns[val].selectedIndex = "0";
}
</Script>
<asp:Repeater runat="server" ID="rptPckgInclusions">
<HeaderTemplate>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td align="left" style="width: 20%; text-align: left">
Parent MarkUp
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td align="center" style="width: 20%;">
<asp:CheckBox runat="server" ID="chkApplyParentMarkUp" OnClick="javascript:EnableDisablePkgInclusionDropDown(<%# Container.ItemIndex %>);"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
我正在尝试将 container.ItemIndex 作为参数传递给复选框 OnClick 事件上的 javascript 函数 enable/disable 少数 controls.But 它没有显示 [=21 中的值=]函数。
提前致谢!
首先要小心 JS 函数中的组件命名(pnlrptPckgInclusions != rptPckgInclusions)
在此之后,您将 OnClick 处理程序更改为此
OnClick='<%# "javascript:EnableDisablePkgInclusionDropDown(" + Container.ItemIndex + ")" %>'
应该有帮助。祝你有美好的一天!
我想提出我的方法。 只需在标记中添加一个属性 name='<%# Container.ItemIndex %>' 即可。 例如,
<ItemTemplate>
<table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr>
<td align="center" style="width: 20%;">
<asp:CheckBox runat="server" ID="chkFoo" OnClick="Test(this)" name='<%# Container.ItemIndex %>'/>
</td>
</tr>
</table>
</ItemTemplate>
现在,在 javascript 方法 Test(this) 中,您可以使用 'this.name'.
获取转发器行索引或者,如果您观察生成的标记 html,您会发现复选框的 ID 生成为 'ConetentPlaceholder1_rptTest_chkFoo_0。 您可以在 javascript 方法中拆分此 id 以获得转发器行索引。