当前位置:编程学习 > C#/ASP.NET >>

AJAX实现dropdownlis多级联动问题

各位大哥,我用asp.NET实现多级联动下拉框,设计页面代码如下,但是一直报错,错误为:
Microsoft JScript 运行时错误: Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。
详细信息: 分析附近的“<STYLE>.ctl00_solpar”时出错。

代码贴出,求分析:

<%@ Page Language="C#" MasterPageFile="~/UTTCMasterPage.master" AutoEventWireup="true"
    CodeFile="Pro001_ProductQuery.aspx.cs" Inherits="Pro001_ProductQuery" Culture="auto"
    meta:resourcekey="PageResource1" UICulture="auto" %>

<asp:Content ID="HeadContent" ContentPlaceHolderID="HeadContent" runat="Server">

    <script type="text/JavaScript" language="javascript" src="App_Js/InputDate.js"></script>

    <style type="text/css">
        .style3
        {
            width: 200px;
        }
        .style4
        {
            width: 250px;
        }
    </style>

</asp:Content>
<asp:Content ID="pageContent" ContentPlaceHolderID="mainContent" runat="Server">
    <div class="tbTitile">
        <asp:Label ID="SearchText" runat="server"></asp:Label>
    </div>
    
    <asp:ScriptManager ID="ScriptManager2" runat="server">
    </asp:ScriptManager>
               <%--  <Triggers>
                <asp:PostBackTrigger   ControlID="ddlManufacturers" />
                <asp:PostBackTrigger  ControlID="ddlProductLine" />
                <asp:PostBackTrigger  ControlID="ddlCurrent_Inm" />
                <asp:PostBackTrigger  ControlID="ddlCurrent_In" />
                <asp:PostBackTrigger  ControlID="ddlAbilityLevel" />
                <asp:PostBackTrigger  ControlID="ddlControllerModel" />
                <asp:PostBackTrigger  ControlID="ddlSeries" />
                <asp:PostBackTrigger  ControlID="ddlInstallationStructure" />
                <asp:PostBackTrigger ControlID="btnSearch_S"  />
                
            </Triggers>--%>
     <asp:UpdatePanel ID="UpdatePanel2" runat="server">
            <ContentTemplate>
    <div class="tbContent">
        <table border="0" cellpadding="0" cellspacing="0" 
            style="width: 98%; margin-top: 10px;">
            <tr>
                <td class="style4" >
                    <asp:Label ID="lblManufacturers" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlManufacturers" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" 
                        onselectedindexchanged="ddlManufacturers_SelectedIndexChanged">
                            </asp:DropDownList>
                </td>
                <td class="style4" >
                   <asp:Label ID="lblProductLine" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlProductLine" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="1" 
                        onselectedindexchanged="ddlProductLine_SelectedIndexChanged"> </asp:DropDownList>
                </td>
                 <td class="style4" >
                   <asp:Label ID="lblCurrent_Inm" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlCurrent_Inm" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="2" 
                         onselectedindexchanged="ddlCurrent_Inm_SelectedIndexChanged"> </asp:DropDownList>
                </td>
                 <td >
                   <asp:Label ID="lblCurrent_In" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlCurrent_In" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="3" 
                         onselectedindexchanged="ddlCurrent_In_SelectedIndexChanged"> </asp:DropDownList>
                </td>
                
                 <td style="text-align:right" rowspan="2">
                 <br />
                    <asp:Button ID="btnSearch_S" runat="server" Text="" CssClass="btn" 
                         OnClick="btnSearch_S_Click" TabIndex="8" />
                </td>
            </tr>
            
            <tr>
                <td class="style4" >
                    <asp:Label ID="lblAbilityLevel" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlAbilityLevel" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="4" 
                        onselectedindexchanged="ddlAbilityLevel_SelectedIndexChanged">
                            </asp:DropDownList>
                </td>
                <td class="style4" >
                   <asp:Label ID="lblControllerModel" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlControllerModel" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="5" 
                        onselectedindexchanged="ddlControllerModel_SelectedIndexChanged"> </asp:DropDownList>
                </td>
                 <td class="style4" >
                   <asp:Label ID="lblSeries" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlSeries" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="6" 
                         onselectedindexchanged="ddlSeries_SelectedIndexChanged"> </asp:DropDownList>
                </td>
                 <td >
                   <asp:Label ID="lblInstallationStructure" runat="server" CssClass="inputlbl" Text=""></asp:Label><br />
                    <asp:DropDownList ID="ddlInstallationStructure" runat="server" CssClass="inputTextFir" 
                                AutoPostBack="True" TabIndex="7"> </asp:DropDownList>
                </td>
            </tr>
        </table>
    </div>
       </ContentTemplate>
            

            
        </asp:UpdatePanel>
    <div class="btnContent">
        <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; margin-top: 10px;">
            <tr>
                <td style="width: 20%">
                </td>
                <td align="right">
  
                    <asp:Label ID="lblFileName" runat="server" CssClass="inputlbl"></asp:Label>
                    <asp:FileUpload ID="FileUpload" CssClass="fileupload" runat="server" />
                </td>
                <td align="right">
                    <asp:Button ID="btnImport" runat="server" Text="" CssClass="btn" 
                        onclick="btnImport_Click" />
                    <asp:Button ID="btnDelete" runat="server" Text="" CssClass="btn" />
                    <asp:Button ID="btnEdit_E" runat="server" Text="" CssClass="btn" 
                        onclick="btnEdit_E_Click"/>
                    <asp:Button ID="btnAdd_A" runat="server" Text="" CssClass="btn" 
                        onclick="btnAdd_A_Click" />
                </td>
            </tr>
        </table>
    </div>
    <div class="gvContent" style="height: 480px;">
        <asp:GridView ID="gvCustomerList" runat="server" CellPadding="0" CellSpacing="0"
            OnPageIndexChanging="gvCustomerList_PageIndexChanging" OnRowCommand="gvCustomerList_RowCommand"
            OnRowDataBound="gvCustomerList_RowDataBound"  OnSorting="gvCustomerList_Sorting">
            <FooterStyle CssClass="gvFooter" />
            <RowStyle CssClass="gvRow" />
            <EditRowStyle CssClass="gvEditRow" />
            <SelectedRowStyle CssClass="gvSelectedRow" />
            <PagerStyle CssClass="gvPager" />
            <HeaderStyle CssClass="gvHeader" Height="25px" HorizontalAlign="Center" />
            <AlternatingRowStyle CssClass="gvAlternatingRow" />
            <Columns>
                <asp:TemplateField HeaderText="Operation">
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelect" runat="server" CssClass="chkBox" Text=""/>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="CustomerIDs" SortExpression="CustomerID">
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkCustomerID" runat="server" Font-Underline="true"
                            CommandName="View"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
    <div id="hidContent">
        <asp:HiddenField ID="hidRightString" runat="server" />
    </div>
</asp:Content>

ajax asp.net updatepanel --------------------编程问答-------------------- 如果不注释
<%--  <Triggers>                 <asp:PostBackTrigger   ControlID="ddlManufacturers" />                 <asp:PostBackTrigger  ControlID="ddlProductLine" />                 <asp:PostBackTrigger  ControlID="ddlCurrent_Inm" />                 <asp:PostBackTrigger  ControlID="ddlCurrent_In" />                 <asp:PostBackTrigger  ControlID="ddlAbilityLevel" />                 <asp:PostBackTrigger  ControlID="ddlControllerModel" />                 <asp:PostBackTrigger  ControlID="ddlSeries" />                 <asp:PostBackTrigger  ControlID="ddlInstallationStructure" />                 <asp:PostBackTrigger ControlID="btnSearch_S"  />                               </Triggers>--%> 

则页面不联动更新,求怎么能让各个下拉框联动更新 --------------------编程问答-------------------- 1.引用必须的js或者jq过来.----不确定是不是需要,
2.看看你ajax返回的值是什么样的?
3.没有人知道你是如何将值绑定到ddl控件的.烦请贴代码 --------------------编程问答-------------------- 1.不太明白
2.怎么看ajax返回值
3.绑定ddl控件,第一个控件是Page_Load中绑定的,后面几个都是有前一个的selectchangge事件绑定,贴出第一个的:

 protected void ddlManufacturers_SelectedIndexChanged(object sender, EventArgs e)
    {
        string Manufacturers = this.ddlManufacturers.SelectedValue;
        string ManufacturersName = this.ddlManufacturers.SelectedItem.ToString();

        //获取检索条件
        ArrayList param = new ArrayList();
        param.Add(Manufacturers);
        DataTable dt = DbHelper.ExecuteCombine(pageId, SQL001, param);
        
        this.ddlProductLine.Items.Clear();
        this.ddlProductLine.Items.AddRange(f_GetListYuko(dt));
        //清空下拉框
        this.ddlCurrent_Inm.Items.Clear();
        this.ddlCurrent_In.Items.Clear();
        this.ddlAbilityLevel.Items.Clear();
        this.ddlControllerModel.Items.Clear();
        this.ddlSeries.Items.Clear();
        this.ddlInstallationStructure.Items.Clear();

    }

--------------------编程问答-------------------- 去掉ajax控件看看 --------------------编程问答-------------------- 去掉ajax控件,就不能局部刷新了,我就是要局部刷新才加的ajax --------------------编程问答-------------------- 用AJAX实现联动 --------------------编程问答-------------------- 我一开始就是用的ajax,把所有下拉框放入updatepanel中,但是这样只能用 <asp:PostBackTrigger   ControlID="ddlManufacturers" /> 注册,不注册和注册异步那个都报错 --------------------编程问答-------------------- 我说的ajax不是.net封装的
自己手动写js后台取数据返回更新相应的select控件 --------------------编程问答-------------------- 你有几个ddl是联动的? --------------------编程问答-------------------- 这代码,看的我纠结!!!! --------------------编程问答-------------------- 7了下拉框联动 --------------------编程问答--------------------
引用 8 楼 DistantSola 的回复:
我说的ajax不是.net封装的
自己手动写js后台取数据返回更新相应的select控件



求指导-_- --------------------编程问答--------------------
引用 10 楼 hou306010849 的回复:
这代码,看的我纠结!!!!

求指教。。。。。。。。 --------------------编程问答-------------------- 建议LZ不要用ASP.NET控件了,自己用HTML+JS+Ashx 写一个就可以了,这东西网上源码太多了,样式你可以自己定义,效果一定会比ASP.NET控件方式做出来的好得多
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,