WebPart 中DropDownList 丢失状态 的解决方案
来源:互联网 发布:如何做好淘宝店铺推广 编辑:程序博客网 时间:2024/05/24 04:46
最近比较忙,忙的都没时间更新博客了.
所以今天要一口气写两篇.
WebPart 中DropDownList 丢失状态 的解决方案,十分头痛.
现象就是DropDownList老是为空.
当时有些晕,上网搜了好久,要么没答案,要么含糊其词。
当有些网友说用HiddenField 保存状态给我一些启发,于是我朝HiddenField的方向去想。
原理:HiddenField的是可以直接反映到客户端的且状态值不丢失,用HiddenField的值记录DropDownList的ClientID.
而DropDownList在客户端反映为ID为ClientID的Select域的Form成员。然后当提交时在服务器端获得ID为ClientID的Select域的Form成员
的值即为DropDownList的选中值。
1、用HiddenField的值记录DropDownList的ClientID
private DropDownList DlistMember = new DropDownList();
private TextBox txtCNName = new TextBox();
private Button btnOnboard = new Button();
private Label lblMessage = new Label();
private HiddenField hiddenFiled = new HiddenField();
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
//填充 DlistMember 的数据
DlistMember.RenderControl(writer)
btnOnboard.Click += new EventHandler(btnOnboard_Click);
txtCNName.RenderControl(writer);
txtCNName.AutoPostBack = false;
btnOnboard.RenderControl(writer);
lblMessage.RenderControl(writer);
hiddenFiled.Value = DlistMember.ClientID;
hiddenFiled.RenderControl(writer);
}
protected override void CreateChildControls()//为了加上btnOnboard的Click事件
{
btnOnboard.Click += new System.EventHandler(this.btnOnboard_Click);
DlistMember.EnableViewState = true;
//DlistMember.EnableTheming = true;
//DlistMember.AutoPostBack = true;
this.Controls.Add(DlistMember);
this.Controls.Add(btnOnboard);
this.Controls.Add(hiddenFiled);
}
2、事件处理
protected void btnOnboard_Click(object sender, EventArgs e)// process btnOnboard click
{
string strValue="";
strValue = hiddenFiled.Value.ToString().Replace("$","_");
for (int i = 0; i < this.Page.Request.Form.Count; i++)//因为$和_的混淆,这里用遍历Form的域来找到需要的域
{
string strTemp = this.Page.Request.Form.Keys[i].ToString().Replace("$", "_");
if (strTemp == strValue)
{
strValue = this.Page.Request.Form[i].ToString();
isFindFrom = true;
break;
}
}
}
- WebPart 中DropDownList 丢失状态 的解决方案
- asp.net 中 DropDownList 输入问题的最简单解决方案
- asp.net 中 DropDownList 输入问题的最简单解决方案
- ASP.NET 中 DropDownList 输入问题的最简单解决方案
- MOSS2007中webpart的开发
- Fragment的状态丢失
- WebPart中自定义Enum以呈现下拉框(Dropdownlist)供用户选择(downmoon)
- android开发中丢失R文件的解决方案
- android开发中丢失R文件的解决方案
- Ubuntu 中/etc/resolv.conf 文件修改丢失的解决方案
- discuz中session自动丢失无法使用的解决方案
- rpmforge 中 apt.sw.be 源丢失的解决方案
- 在webpart中使用Treeview的设想
- 在WEBPART中连接数据库的方法
- WebPart应用程序中服务器错误的解决办法
- SharePoint中自定义WebPart的部署
- webpart菜单中添加自定义的Verbs
- SharePoint中自定义WebPart的部署
- 什么是WEB标准?
- Javascript中escape(), encodeURI()和encodeURIComponent()之精析与比较
- 枚举,结构类型
- 几种常用的页面跳转总结
- 怎样过度到W3C?
- WebPart 中DropDownList 丢失状态 的解决方案
- 我来做个好人吧,40种网站设计常用技巧
- Axure RP Pro - 相关问题 - 统计选中的复选框的数量
- 几种常用的软件测试工具
- oracle死锁处理
- Gnutella的文件传输机制
- 值得用一生回味
- 少走弯路 Web开发网站制作十八条心得
- 跨库连接视图