单击按钮后保留asp.net控件的UI状态

时间:2013-03-28 08:55:40

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

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

请建议

  1. 我如何保存新标签名称等?
  2. 我是否应该在on document load事件中为change事件中的dropdownlist编写相同的jquery代码?
  3. 我应该使用隐藏字段来存储值吗?

2 个答案:

答案 0 :(得分:0)

  

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

是,

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

  

2:我是否应该在on document load事件中为change事件中的dropdownlist编写相同的jquery代码?

否,

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

  

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

是的,

您可以使用隐藏字段来存储使用jQuery在GUI控件中所做的更改。通过使其成为runat服务器来访问隐藏的现场服务器。在服务器端,当您获得回发访问隐藏字段时,提取并为各个控件分配值。您可以在post中看到它的工作原理。

答案 1 :(得分:0)

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

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

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

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

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

      });

3)将点1方法附加到下拉列表的更改上。

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