所以我在页面上有这个asp:DropDownList。它呈现像这样(在IE7中):为什么在一段时间后Combo.SelectedValue会丢失
<select name="ctl00$cphFilter$cbLista" onchange="javascript:setTimeout('__doPostBack(\'ctl00$cphFilter$cbLista\',\'\')', 0)" id="ctl00_cphFilter_cbLista" class="agsSelect">
<option selected="selected" value="4350">A</option>
<option value="4352">B</option>
<option value="4349">C</option>
<option value="4348">D</option>
然后我在同一页上有一个网格和一个按钮。当用户单击按钮时,将读取下拉列表中选定的项目(以及数据源对象读取的内容),网格在访问数据库后执行数据绑定,从而根据所选值获取一些数据。
这在大多数情况下工作正常。但有时,即使呈现的页面显示A是选定的项目,下拉列表中的选择似乎也会丢失。
DataSource对象的定义如下:
<asp:ObjectDataSource ID="dsVM" runat="server" EnablePaging="False" SelectMethod="Select" SortParameterName="sort" TypeName="X.Business.Entities.LPVM.BE">
<SelectParameters>
<asp:ControlParameter Name="listaId" Type="Int32" ControlID="cphFilter$cbLista" PropertyName="SelectedValue" />
</SelectParameters>
</asp:ObjectDataSource>
任何想法,为什么网格将与选择参数是0,而不是下拉列表的设定值重新加载其数据?
编辑 假设下拉列表被绑定,用户选择了B并且网格也被绑定并显示正确的数据。现在,我等待2分钟,然后单击刷新按钮。令人惊讶的是,在这个特定时刻dropdownlist.SelectedValue(我已经知道它是4352之前,我点击,因为这是它看起来在呈现的页面)实际上是一个空字符串。价值何去何从?
那么,当我点击按钮时,我调用gridview.DataBind()。在此之前我无法调用dropdownlist.DataBind(),因为那时我失去了我的选择。 – tzup 2009-10-16 11:53:02
@tzup;你能解决这个问题吗? – 2011-08-21 00:54:23