我有一个带有DropDownList的aspx站点。我希望能够在那里选择3个变量,然后保留所选的回发值。这个页面是为了从数据库中加载10个条目而使用这个DropDownList我希望能够在10,20,30个条目中进行选择。
的DropDownList
<asp:DropDownList ID="dd1" runat="server" AutoPostBack="True" EnableViewState="True">
<asp:ListItem Value="10">10</asp:ListItem>
<asp:ListItem Value="20">20</asp:ListItem>
<asp:ListItem Value="30">30</asp:ListItem>
</asp:DropDownList>
在这里,我尝试设置发送到数据库的值,该查询带出10,20或30个第一个条目。
public IEnumerable<XX> repOrder_GetData([ViewState]DateTime? UpdatedRows)
{
var ordrar = _facade.OrderGetForAttest(1, Convert.ToInt32(dd1.SelectedValue));
return ordrar;
}
如何在回发期间保留此值,因为每次在DropDownList中选择某些内容时页面都会重新加载,导致只选择第一个值。
protected void Page_Init(object sender, EventArgs e)
{
try
{
_masterpage = this.Master as XX.resource.masterpage.Site;
}
catch (Exception)
{
throw;
}
}
protected void Page_Load(object sender, EventArgs e)
{
// Kolla behörighet första gången.
KollaBehorighet();
_masterpage.ClearMessage();
if (Page.IsPostBack)
{
}
else
{
Page.DataBind();
// Första gången..
PageInit();
FillPage(null);
//FIXME: xxx.Focus();
}
}
答案 0 :(得分:2)
您应该设置'OnSelectedIndexChanged'事件。
<asp:DropDownList ID="dd1" runat="server" AutoPostBack="True" onselectedindexchanged="ddlItemSelected" EnableViewState="True">
<asp:ListItem Value="10">10</asp:ListItem>
<asp:ListItem Value="20">20</asp:ListItem>
<asp:ListItem Value="30">30</asp:ListItem>
</asp:DropDownList>
protected void ddlItemSelected(object sender, EventArgs e)
{
//Add your selected value to viewstate or session or whatever. Then check this value when binding on postback.
Viewstate["myValue"] = dd1.SelectedValue;
}
答案 1 :(得分:1)
您可以尝试将其存储在会话状态,然后从会话中加载它 有人喜欢这样:
Session["Selected"] = dd1.SelectedIndex;
在Load Event中你可以使用:
dd1.SelectedIndex = Convert.ToInt32(Session["Selected"]);