我在我的页面上有Dropdownlist,并在代码隐藏文件(.cs)中创建了selectedindexchanged方法.
我想用A标签创建假回传(onmouseover事件).
首先,我查看了HTML的来源.
<select name="ctl00$cpholder_ana$ddlFaturaNolar" onchange="javascript:setTimeout('__doPostBack(\'ctl00$cpholder_ana$ddlFaturaNolar\',\'\')', 0)" id="ctl00_cpholder_ana_ddlFaturaNolar">
<option selected="selected" value="CHOOSE"></option>
<option value="001926">[ 30.04.2009 - 156.492,00 TL ] 001926</option>
</select>
Run Code Online (Sandbox Code Playgroud)
然后,我复制了
onchange="javascript:setTimeout('__doPostBack(\'ctl00$cpholder_ana$ddlFaturaNolar\',\'\')', 0)"
Run Code Online (Sandbox Code Playgroud)而且,我创建了一个带有鼠标悬停事件的标签(用于制作Postback但是由Dropdownlist触发)
<a onmouseover="javascript:setTimeout('__doPostBack(\'ctl00$cpholder_ana$ddlFaturaNolar\',\'\')', 0)">asdasdasdasdad</a>
Run Code Online (Sandbox Code Playgroud)
但它没有降到SelectedIndexChanged方法.
谢谢你们.
Kir*_*tan 11
您可以使用此代码段 -
__doPostBack('<%= dropdownlist.UniqueID %>', '');
Run Code Online (Sandbox Code Playgroud)
您不能使用硬编码的唯一ID,因为它们可能由于许多原因而发生变化.例如,如果父控件的id改变等,则id将改变.您将必须使用上面给出的代码从服务器端获取UniqueID.
编辑:忘了提一件重要的事情.仅当下拉列表的selectedIndex更改时,页面才会回发:)因此,如果要触发该事件,请使用此更改下拉列表的索引,然后调用__doPostBack代码 -
document.getElementById("<%= dropdownlist.UniqueID %>").selectedIndex = 1;
__doPostBack('<%= dropdownlist.UniqueID %>', '');
Run Code Online (Sandbox Code Playgroud)
编辑2:添加鲍勃所说的,你可以使用隐藏的服务器控件.我建议你使用asp:Hidden控件并挂钩它的OnValueChanged事件.因此,只要您想将页面发布回服务器,就必须更改隐藏变量的值.这样您就不必使用隐藏按钮了.
document.getElementById("<%= hiddenField.UniqueID %>").value = (new Date()).getTime();
Run Code Online (Sandbox Code Playgroud)