【问题标题】:preserve UI state of asp.net controls after button click单击按钮后保留 asp.net 控件的 UI 状态
【发布时间】:2013-03-28 08:55:40
【问题描述】:

我有一个带有下拉列表和许多 ASP.NET 文本框/标签的 ASP.NET Web 应用程序。当用户从下拉列表中选择特定项目时,标签会更改文本,其中一些会使用 jquery 隐藏等。但是,单击按钮后,控件将更改回页面首次加载时的状态。

请推荐

  1. 如何保留新标签名称等?
  2. 我是否应该将我为更改事件的下拉列表编写的相同 jquery 代码也放在文档加载事件中?
  3. 我应该使用隐藏字段来存储值吗?

【问题讨论】:

    标签: c# jquery asp.net drop-down-menu


    【解决方案1】:

    1:如何保留新标签名称等?

    是的,

    您可以使用隐藏字段来存储。

    2:我是否应该将我为更改事件的下拉列表编写的相同 jquery 代码也放在文档加载事件中?

    不,

    在 page_load 访问隐藏字段,提取并使用值。

    3:我应该使用隐藏字段来存储值吗?

    是的,

    您可以使用隐藏字段来存储您在使用 jQuery 的 GUI 控件中所做的更改。通过使其运行在服务器上,使该隐藏字段服务器可访问。在服务器端,当您获得回发访问隐藏字段时,提取并将值分配给相应的控件。你可以在这个post 中看到它是如何工作的。

    【讨论】:

      【解决方案2】:

      您可能知道,如果是提交类型,单击按钮后,它将回发到服务器,因为 HTTP 是无状态的,因此您有责任再次生成标签文本和值。通常 ASP.NET 视图状态会负责为输入文本执行此操作,但您必须自己处理标签。我可以建议这样的解决方案

      1) 有一个 javascript 方法,该方法具有根据下拉列表的选定值更改标签和隐藏字段值的逻辑

           function MyFunction ( ddlSelectedValue)
           {
            if(ddlSelectedValue == "1")
             {
                 $("#LABELID").html('YOUR VALUE');
                 // rest other logics
             }
           }
      

      2) ASP.NET 视图状态将帮助您在单击按钮后保留下拉状态。所以在页面顶部添加这个 jquery 脚本

            $(document).ready(function(){
             var ddlSelectedValue = $("#DDLID").val();
             MyFunction(ddlSelectedValue);
      
            });
      

      3) 将第 1 点方法也附加到下拉列表的 onchange 中。

      4)使用隐藏字段是可以的,因为隐藏字段将满足您在服务器端使用的要求,因为它们也会被回发。

      【讨论】:

        猜你喜欢
        • 2017-06-25
        • 1970-01-01
        • 2014-09-16
        • 2019-12-31
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多