当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET使用PageMethods在回发之间保留label.text值的最佳方法

如何解决《ASP.NET使用PageMethods在回发之间保留label.text值的最佳方法》经验,为你挑选了1个好方法。

ASP.NET 2.0,PageMethods。

美好的一天,

当我的页面上的下拉列表更改时,我正在使用ASP.NET AJAX PageMethods动态更改Label的文本。

我知道在客户端更改标签的文本不会在回发之间保留,这就是我的情况。我听说解决方案是将标签内容保留在隐藏字段中,然后在Page_Load中从该字段设置标签文本。

但是,这种解决方案对我来说似乎并不干净。还有其他选择或最佳做法吗?

谢谢!


为了澄清一下,我有一个带有人名的下拉列表。当下拉列表更改时,我想在标签中放入该人的电话。但是,我认为进行完整的回发并不是真正的最佳选择,因此我决定使用PageMethod来获得电话,并通过下拉列表中选择的项目的ID来检索电话,并将其放入标签中。

但是,由于其他控件导致了完整的回发,因此每次回发都会丢失电话。我知道将其放在隐藏字段中,然后在有完整的回发时将其设置回Page_Load中的标签是可行的,但是如果有其他解决方案,我会在措手不及。由于WebMethods被标记为静态,因此我无法编写Label.text = person.Telephone; 在他们中。



1> gsnerf..:

好像有ajax一样,您可以执行部分​​回发,将数字写入标签和视图状态,然后在page_load中将值从视图状态写入标签。

在DropDownList事件处理程序中:

string phone = <.. get phone number ...>;
myLabel.Text = phone;
ViewState["currentPhone"] = phone;

在PageLoad上:

myLabel.Text = (ViewState["currentPhone"] != null) ? (string)ViewState["currentPhone"] : string.Empty;

如果您不想使用Ajax,则可以在aspx文件中定义HiddenInputField,用javascript填充内容,并在Postback上用内容填充标签。在aspx上:


在PageLoad上:

myLabel.Text = myHiddenInput.Value;

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有