我在gridview模板字段中有一个下拉列表,并将rowIndex传递给javascript函数。似乎在下拉列表中的值有时间完全更改为所选值之前触发了javascript函数。因此,即使我从下拉列表中选择了其他选项,我也总是会得到第一个返回的索引。
<asp:TemplateField HeaderText="Establishment">
<ItemTemplate>
<asp:DropDownList ID="drpUserEstablishment" CssClass="dropdown" ClientIDMode="Static"
runat="server" AutoPostBack="false"
onchange='<%#"setUserEstablishment(" + Container.DataItemIndex +")"%>'>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
JavaScript函数:
function setUserEstablishment(rowIndex) {
var establishid = $('#drpUserEstablishment option:selected').val();
}
答案 0 :(得分:0)
传递“ this”然后在函数中使用this似乎可以解决这个问题
onchange='<%#"test(" + "this"+","+Container.DataItemIndex +")"%>'
function test(ddl,rowindex) {
var index = ddl.selectedIndex;
alert("rowindex=" + rowindex);
alert('Selected Value = ' + ddl.value + '\r\nSelected Index = ' + index);
}