我有一个GridView,我通过列表填充它。其中一列是DropDownList,AllowPaging设置为true。我的问题是,当我在ddl上选择一个值,并在分页后,选定的值丢失。是否有任何方法/想法来坚持选定的值? 感谢您的帮助。在页面上坚持dropdownlist
2
A
回答
1
你可以使用视图状态内的字典对象保存多个值即
Dictionary<int, string> ddlValues = new Dictionary<int, string>()
其中int是行索引和字符串是DDL选择的值。当然,这可能是一个int/guid或其他什么取决于ddl中存储的实际值,或者是一个int,如果你想使用selectedIndex来代替。
页面上的事件中,你需要做的
protected void MyGridView_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
for(int rowIndex = 0; rowIndex < myGridView.Rows.Length; rowIndex++)
{
DropdownList ddl = myGridView.Rows[rowIndex].FindControl("ddlId") as DropDownList
if(ddl != null)
{
if(ddl.SelectedIndex > 0) //.. or sensible check appropriate to you
{
int ddlIndex = rowIndex * e.NewPageIndex + 1;
//.. add pageIndex and selectedValue to dictionary
ddlValues.Add(ddlIndex, ddl.SelectedValue);
}
}
}
}
不要担心当前页面DDL值。这些将以正常的方式持续在视图状态。这是我们所考虑的“隐藏”页面。因此,我们正在重新填充网格页面时的字典。
该字典然后可以保存在session/viewState中,并通过反向执行该过程用于补充下拉列表。例如,当页面加载(检查!isPostBack
)或当电网重新绑定取决于你设置的东西
0
您可能希望将数据保存在ViewState
中。看看这个MSDN文章
http://msdn.microsoft.com/en-us/library/ms972976.aspx
后您将其保存在ViewState中,你可以检索PostBack
这样的数据:
if (!Page.IsPostBack)
{
//do some stuff
}
else
{
//retrieve the viewstate information
selectedValue= ViewState["dropdownlistValue"].ToString();
}
或者,你也可以保持在一个Session
信息可变的,但可能会引入其他问题取决于你在做什么。
+0
谢谢Rondel的回复。为了节省ViewState实际上是一个好方法,但是我的问题是我必须坚持不止一个价值,我不知道该怎么做。我的网格视图有一个复选框列,以允许一次选择多行,这就是为什么我需要坚持许多价值。你有什么主意吗? –
相关问题
- 1. REACT组件坚持页面?
- 2. 坚持值DropDownList的编辑模板
- 3. Bootstrap Footer not坚持页面底部
- 4. Dropdownlist SelectedIndexChanged不在aspx页面上触发
- 5. ASP.NET:如何坚持页面状态跨页面?
- 6. 坚持的ListView页面上的动态数据jQueryMobile
- 7. 制作小组坚持,尽管页面上点击浏览器
- 8. 是否坚持或不坚持每页结果数。如果我们想坚持下去,如何坚持
- 9. 如何在页面重定向到asp.net MVC后坚持页面状态?
- 10. 粘性页脚不坚持页面底部
- 11. paypal IPN的作品,但坚持在贝宝的谢谢页面!
- 12. Addclass上的document.ready不坚持
- 13. 如何坚持DropDownList的数据源,从Linq查询
- 14. 学说坚持+坚持=插入+插入?
- 15. Ionic2按钮必须坚持页面底部
- 16. 坚持用户名和页面名称到数据库
- 17. asp.net webform - 如何坚持一个对象实例beetwen页面
- 18. IE7:无法获取菜单坚持到页面顶部
- 19. 点击链接后,我如何坚持谷歌翻译页面?
- 20. 保持Razor DropDownList在一条线上
- 21. 使用dropdownlist在页面加载期间自动填充页面
- 22. 页脚不会坚持底部
- 23. 在内容页面上通过DropDownList更改动态控件
- 24. 如何坚持
- 25. 让SetDesktopBounds坚持
- 26. 坚持NSOperationQueue
- 27. 坚持fadeTo
- 28. 没有坚持
- 29. 坚持级联
- 30. 主义坚持:
我收到字典中的值,但如何重新填充下拉列表中的相同的值..我问** [问题在这里..!](http://stackoverflow.com/questions/22830180/persisting-dropdownlist- value-in-pageindexchanged-of-gridview)**请帮助我 –