<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函数以启用/禁用几个控件。但它没有在Javascript函数中显示该值。
提前致谢!
答案 0 :(得分:0)
首先要小心JS函数中的组件命名( pnlrpt PckgInclusions!= rpt PckgInclusions)
在此更改后,您 OnClick 处理程序
OnClick='<%# "javascript:EnableDisablePkgInclusionDropDown(" + Container.ItemIndex + ")" %>'
应该有所帮助。祝你有愉快的一天!
答案 1 :(得分:0)
我想建议我的方式。 只需添加一个属性,例如name =&#39;&lt;%#Container.ItemIndex%&gt;&#39;在标记中。 例如,
<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)中,您可以使用&#39; this.name&#39;来获取转发器行索引。
或者,如果您观察生成的标记html,您会发现该复选框的ID生成为ConetentPlaceholder1_rptTest_chkFoo_0。 您可以在javascript方法中拆分此id以获取转发器行索引。