如何在button提交了之后页面刷新了还保存select里面的值?用session和cookie保存的就算了···

解决方案 »

  1.   

    用服务器端控件:DropDownListEnableViewState 属性设置成True, 它默认就是True. 
      

  2.   

    select 加个 runan="server" 看看
      

  3.   

    本帖最后由 net_lover 于 2012-08-15 07:49:37 编辑
      

  4.   

    把EnableViewState属性设置为true了···不管用啊 
      

  5.   

    如果保存到了库里,刷新后重新读取一下,然后重新设置一下如果没有,可以通过地址栏或者Post给本页面的方式,然后读取,接受,设置
      

  6.   

    首先,你是使用的DropDownList还是html的select?DropDownList本身就有这样的功能如果是html的select,你可以
    <%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">      protected void Button1_Click(object sender, EventArgs e)
        {
            String s = Request.Params.Get("S1");
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "js", "myfunction('" + s + "')", true);
        }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
        <script type="text/javascript">
            function myfunction(item) {
            s = document.getElementById("S1")
            for (i = 0; i < s.options.length; i++) {
                if (s.options[i].value == item) s.options[i].selected = true;
            }
            }
        </script>
    </head>
    <body>
        <form runat="server">
        <select name="S1" id="S1">
            <option value="1">1</option>
            <option value="2">3</option>
            <option value="3">3</option>
        </select>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        </form>
    </body>
    </html>
      

  7.   

    加select 加个 runan="server" 的方法
    <%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">      protected void Button1_Click(object sender, EventArgs e)
        {
            String s = Request.Params.Get("S1");
            for (int i = 0; i < S1.Items.Count; i++)
            {
                if (S1.Items[i].Value == s) S1.SelectedIndex = i;
            }
            
        }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
       
    </head>
    <body>
        <form runat="server">
        <select name="S1" id="S1" runat=server>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        </form>
    </body>
    </html>
      

  8.   

    我使用的html的select····不是DropDownList的
      

  9.   

    你这个做的demo···即使不添加button里面的方法····点击button   值也不会改变···
      

  10.   

    怎么弄啊?是enableviewstate=“false”么?
      

  11.   

    你试试没有啊?我都是调试完贴上去的咋没用的?你的使用环境是什么?UpdatePanel?
      

  12.   

     private string TestValue
        {
            get
            {
                return (ViewState["TestValue"] != null) ? ViewState["TestValue"].ToString() : "";
            }
            set
            {
                ViewState["TestValue"] = value;
            }
        }
      

  13.   

    我即使在button里面不写那个onclick的触发事件···点击button也不可以保存select里面的值··你试试?
      

  14.   


      private string TestValue
      {
      get
      {
      return (ViewState["TestValue"] != null) ? ViewState["TestValue"].ToString() : "";
      }
      set
      {
      ViewState["TestValue"] = value;
      }
      }将值存放在ViewState里面保存
      

  15.   


    不知道你究竟问什么?如何在button提交了之后页面刷新了还保存select里面的值?这不是你的问题吗?搞清楚Web程序的工作机制再进行写代码。什么都不做,你使用Cookie保存就可以了,怎么刷新都会保存选择的值,button提交就是表单的提交,select有name属性,并且放在form里面,后台就能得到选择的内容,采用js就能设置选择项
      

  16.   

    你不是给了我两个demo么?我试了第一个是可以的,第二个是不可以的···你试试你的第二个,你的第二个demo在button获得select的值的那个方法,即使你把那个方法注释掉,也是会保存的···
      

  17.   

    好吧,我错了···我只试了你的第二个demo,你的第二个demo确实是不可以的,但是你的第一个demo是可行的···谢谢你了···但是如果我是动态添加option的值,你给出的这个js是单独写,还是放到我写的动态添加option的js里面?
      

  18.   

    嗯,我想要的是页面刷新后,select还显示的是之前选择的那个值。你第一个方法已经解决了···谢谢你··
      

  19.   

    - - 数组。  你是不是打算把整个页面里面的数据全部都保存一边呢。。   直接做viewstate吧。。
    直接吧页面给保存起来 多直接- -