Jquery风格的下拉列表不再发布反击selectedindexchanged事件

时间:2011-05-20 14:27:56

标签: jquery asp.net drop-down-menu

Visual Studio 2008中的ASP.Net 3.5到C#。

我认为很简单的问题,但我无法在线找到解决方案。我有一个使用autopostback成功回​​发的下拉列表。我使用这个jquery样式器来设置它: Selectbox Style

从那以后它就不再发回。这似乎是因为Jquery正在改变代码以便于样式化,这很好,我只需要找到一种方法来触发selectedindexchange事件,或者当有人更改样式化的“版本”中的选择时让jquery更新选择框下拉列表。

有什么想法吗?

这是Jquery生成的代码:

<div class="test" sb="14935647" style="display: none;">
<select id="ctl00_Body_ucSets_rptSelections_ctl00_ddlAttributeSelection" class="dropdown" onchange="javascript:setTimeout('__doPostBack(\'ctl00$Body$ucSets$rptSelections$ctl00$ddlAttributeSelection\',\'\')', 0)" name="ctl00$Body$ucSets$rptSelections$ctl00$ddlAttributeSelection">
<option value="-1" selected="selected">Change Colour</option>
<option value="14">Red</option>
<option value="21">Black</option>
<option value="22">Pink</option>
<option value="23">Green</option>
</select>
</div>
<div id="sbHolder_14935647" class="sbHolder">
</div>

虽然这是我的实际C#代码:

<div class="test">
<asp:DropDownList ID="ddlAttributeSelection" runat="server" CssClass="dropdown"
             OnSelectedIndexChanged="ddlAttributeSelection_selectedIndexChanged"
                AutoPostBack="true" AppendDataBoundItems="true">
            </asp:DropDownList>
</div>

1 个答案:

答案 0 :(得分:0)

它不会回发,因为你在屏幕上看到的不是你的DropDownList。如果您检查DOM,您将看到jQuery已将DropDownList转换为具有许多列表元素(<ul>)的无序列表(<li>

修改

通过查看jQuery,您可以使用onchange一个事件,然后您需要使用该事件通过javascript调用OnSelectedIndexChanged