下拉列表在回发时失去价值 [英] dropdownlist losing value on postback
本文介绍了下拉列表在回发时失去价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Gridview中使用自定义分页。我已经创建了一个Control,其中有一个下拉列表来选择页面大小。一切正常,但当我刷新页面时,下拉列表丢失了它的价值
这里是我的代码
I am using Custom paging in Gridview. I have created a Control in which there is a dropdown to selece page size. Everything works fine but when i am refreshing page the dropdown lost it's value
here is my code
<asp:DropDownList ID="ddlPageRowSize" EnableViewState="True" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlPageRowSize_SelectedIndexChanged">
<asp:ListItem Value="10">10</asp:ListItem>
<asp:ListItem Value="20">20</asp:ListItem>
<asp:ListItem Value="50">50</asp:ListItem>
<asp:ListItem Value="100">100</asp:ListItem>
</asp:DropDownList>
页面加载我保存下拉列表选择值在viewstate这里是我的代码
on page load i am saving dropdown selected value in viewstate here is my code
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
ViewState["PageSize"] = ddlPageRowSize.SelectedItem.Value;
}
// suppose i have selected 100 from dropdown and then refresh the page
// ddlPageRowSize.SelectedItem.Value always returns 10
我做错了什么可以有人建议....
what wrong i am doing can anyone suggest....
推荐答案
你的页面加载事件应该是这样的事情
your page load event should be soemthing like this
protected void Page_Load(object sender, EventArgs e)
{
// if (!Page.IsPostBack)
// {
//do something
// }
// else
// {
// ddlPageRowSize.SelectedIndex= Convert.ToInt32(Session["index"]);
if(Session["index"] == null)
{
//do something
}
else
{
ddlPageRowSize.SelectedIndex= Convert.ToInt32(Session["index"]);
}
}
您在ddlPageRowSize_SelectedIndexChanged事件中将值设置为会话,例如
where you set the value to the session in the ddlPageRowSize_SelectedIndexChanged event like
protected void ddlPageRowSize_SelectedIndexChanged(object sender, EventArgs e)
{
Session["index"] = ddlPageRowSize.SelectedIndex;
}
已选择=True到您的列表项目将解决您的问题。
Selected="True" to your list item will solve your problem.
<asp:DropDownList ID="ddlPageRowSize" EnableViewState="True" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlPageRowSize_SelectedIndexChanged">
<asp:ListItem Selected="True" Value="10">10</asp:ListItem>
<asp:ListItem Value="20">20</asp:ListItem>
<asp:ListItem Value="50">50</asp:ListItem>
<asp:ListItem Value="100">100</asp:ListItem>
</asp:DropDownList>
请使用以下代码。
please use the following code.
protected void Page_Load(object sender, EventArgs e)
{
if (Session["PageSize"] != null)
ddlPageRowSize.SelectedValue = Convert.ToString(Session["PageSize"]);
}
protected void ddlPageRowSize_SelectedIndexChanged(object sender, EventArgs e)
{
Session["PageSize"] = ddlPageRowSize.SelectedValue;
}
这篇关于下拉列表在回发时失去价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文