C# 怎么使用viewstate在页面中传值

当选择第一个下拉列表中的选项后,第二个下拉列表会根据第一个下拉列表的值获取内容。但是当我选择完第一个下拉列表中的内容后,虽然获取了第二个下拉列表中的内容,然后密码框里面的... 当选择第一个下拉列表中的选项后,第二个下拉列表会根据第一个下拉列表的值获取内容。
但是当我选择完第一个下拉列表中的内容后,虽然获取了第二个下拉列表中的内容,然后密码框里面的值就自动为空了,但是第一个文本框的值还在。这两个文本框是HTML控件
请问各位大神,这个怎么破。
展开
 我来答
百度网友16ad9e1
2014-08-06 · TA获得超过774个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:507万
展开全部
首先 这个问题与viewstate无关。
asp.net webform的客户端控件的viewstate在postback时会自己维护,这也是为什么你的第一个文本框的内容可以被保留。
但是password是特殊的,因为安全原因考虑,password会在每次postback之后被清空,这是就需要我们手动给password赋值。

postback之后在page_load中我们可以得到password的值
比如 string password=txtPassword.Text;
然后这样给他赋值:
txtPassword.Attributes.Add("value", password);
追问
那么请问一下,我需要把这两句话加到什么地方呢?代码的图片在别的追问里面有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ab...e@gmail.com
2014-08-06 · 超过31用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:56.8万
展开全部
CT_CustomValuePassword1.Attributes.Add("value", ViewState["CT_CustomValuePassword1"]);
这样子密码控制项可以显示密码储存的样子了!
更多追问追答
追问
那么,请问一下我需要把这句话,加到什么地方呢?page_load?
追答
if (!IsPostBack)
{

}
CT_CustomValuePassword1.Attributes.Add("value", ViewState["CT_CustomValuePassword1"]);

对,在page_load, 但不要放在if (!IsPostBack)里面就可以了!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
裔枫丶
2014-08-06
知道答主
回答量:2
采纳率:0%
帮助的人:2788
展开全部
二级联动,postback之后页面刷新,password文本就会丢失的。
你试试在
portected void Page_Load(object sender,EventArgs e)
{
if(!postback)
{
binddata();
}
CT_CustomValuePassword1.Attributes.Add("value",CT_CustomValuePassword1.Text.Trim());
}

加到这里。试试看。 应该就不会丢失了。
追问

不好意思,不好使啊。

现在的代码是这样的

追答
额.. CT_CustomValuePassword1.Value.Trim())?
Value? 。。 行吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
正怒月神
2014-08-06 · TA获得超过1157个赞
知道小有建树答主
回答量:710
采纳率:100%
帮助的人:500万
展开全部
//保存到viewstate
viewstate["pwd"]="你的密码";
//给你的前台密码框赋值
this.txtPwd=viewstate["pwd"].toString();
追问
,这个是前台密码框的代码,还有就是请问我要把这两句话放到什么地方,代码在别的追问里面有。
追答
viewstate["pwd"]="你的密码";
放在pageLoad里就可以了

this.txtPwd=viewstate["pwd"].toString();
放在你的第一个联动的下拉框事件里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-06
展开全部
局部刷新第二个下拉框,就不会清空密码
更多追问追答
追问

密码框的ID是CT_CustomValuePassword1。

这个是加载第一个下拉框的值的代码

这个是当选取了第一个下拉框的值,获取第二个下拉框的值的代码

这个是当加载页面的时候,执行的代码

请问一下,我该怎么用代码实现功能呢?

追答
下面这个方法试过吗:
在页面后台,Page_Load函数中添加一段代码:
if (this.txtPassword.Text != "")//防止页面刷新,密码文本被清空
{
this.txtPassword.Attributes["value"] = this.txtPassword.Text;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式