gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:43:44 26 4
gpt4 key购买 nike

ASP.NET 2.0,页面方法。

再会,

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

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

但是,这个解决方案对我来说似乎并不干净。是否有其他替代方案或最佳实践?

谢谢!

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

但是,由于其他控件会导致完全回发,因此每次回发时我都会丢失电话。我知道将它放在一个隐藏字段中,然后在有完整回发时将其设置回 Page_Load 中的标签会起作用,但是我在犹豫是否有其他解决方案。由于 WebMethods 被标记为静态,我不能写 Label.text = person.Telephone;在他们之中。

最佳答案

由于您似乎有 ajax,您可以只进行部分回发,将数字写入标签并写入 View 状态,然后在 page_load 中将值从 View 状态写入标签。

在 DropDownList 事件处理程序中:

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

在页面加载上:
myLabel.Text = (ViewState["currentPhone"] != null) ? (string)ViewState["currentPhone"] : string.Empty;

如果您不想使用 Ajax,您可以在 aspx 文件中定义一个 HiddenInputField,用 javascript 填充内容,并在回发时用内容填充标签。
在aspx上:
<asp:HiddenInputField runat="server" ID="myHiddenInput" />

在页面加载上:
myLabel.Text = myHiddenInput.Value;

关于ASP.NET 在使用 PageMethods 回发之间保留 label.text 值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/705615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com