最近刚开始玩JQuery还有ASP.net AJAX,尝试做一个条件查询的功能。
特效和局部刷新完成了,基本结构就是一个updatePanel里包含一个Listbox,然后点击里面的选项作为查询条件,但是问题出来了,发现ViewState不能使用,问下大家,碰到这种问题是怎么处理的?怎么获取值然后进行查询?<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                        <ContentTemplate>
                                            <asp:ListBox ID="RootLB" runat="server" AutoPostBack="True" Height="200px" OnSelectedIndexChanged="RootLB_SelectedIndexChanged"
                                                Width="195px"></asp:ListBox>
                                        </ContentTemplate>
                                    </asp:UpdatePanel><asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                                        <ContentTemplate>
                                            <asp:ListBox ID="ChildLB" runat="server" AutoPostBack="True" Height="200px" OnSelectedIndexChanged="ChildLB_SelectedIndexChanged"
                                                Width="195px"></asp:ListBox>
                                        </ContentTemplate>
                                        <Triggers>
                                            <asp:AsyncPostBackTrigger ControlID="RootLB" EventName="SelectedIndexChanged" />
                                        </Triggers>
                                    </asp:UpdatePanel> protected void ChildLB_SelectedIndexChanged(object sender, EventArgs e)
    {        SelectItemInfo.Text = "选择的是:" + ChildLB.SelectedItem.Text ;
        ViewState["SelectItem"] = ChildLB.SelectedValue;
    }

解决方案 »

  1.   

    没这么做过,从来不去动viewstate。
    建议换其他方法。
      

  2.   

    这个还真心没用过,觉得还是使用ashx+Jquery+ajax比较方便。
      

  3.   

    用ashx文件去处理ajax请求的数据,然后返回到页面上进行赋值,
      

  4.   

    用 jqeury ajax + ashx 比较容易写 ,建议换个方法 
      

  5.   

    当然后台页面处理不一定非得用ASHX。
      

  6.   

    UploadFile也不能获取值。纠结的ajax
      

  7.   

     <Triggers>
                                                <asp:AsyncPostBackTrigger ControlID="RootLB" EventName="SelectedIndexChanged" />
                                            </Triggers>
    ControlID="RootLB" 应该为:ChildLB,
    因为你下面的事件对应该这个对象:
    protected void ChildLB_SelectedIndexChanged(object sender, EventArgs e)
        {        SelectItemInfo.Text = "选择的是:" + ChildLB.SelectedItem.Text ;
            ViewState["SelectItem"] = ChildLB.SelectedValue;
        }