更新updatepanel而不回发

时间:2012-05-24 07:00:26

标签: c# asp.net updatepanel dopostback

我在表中有两列,下拉列表'ddlModelNumber'取决于'ddlServicerOrg'的选定值。 'ddlServicerOrg'中的数据非常大,所以每次更改所选项时我都不希望它被渲染。我想根据'ddlServicerOrg'中的选定值将数据加载到'ddlModelNumber',而不使用jquery:ajax 。那么, OnChange =“_ doPostBack('pnlModel','');”正确的方法吗?我不希望一次又一次地为'ddlServicerOrg'渲染大量数据。以下是代码。

                <td>
                    <asp:DropDownList ID="ddlServicerOrg" runat="server" DataTextField="ListText" DataValueField="ID"
                        OnInit="ddlServicerOrg_Init" OnDataBound="ddlServicerOrg_DataBound" OnSelectedIndexChanged="ddlServicerOrg_IndexChanged"
                        AutoPostBack="false" AppendDataBoundItems="True" DataSourceID="ServiceLocationOrgODS" OnChange="_doPostBack('pnlModel','');">
                        <asp:ListItem></asp:ListItem>
                    </asp:DropDownList>
                </td>
                <td>
                <asp:UpdatePanel ID="pnlModel" runat="server">
                <ContentTemplate>
                    <asp:DropDownList ID="ddlModelNumber" runat="server" AutoPostBack="false" DataSource='<%# GetServicedModelforServicePartner() %>'
                        DataTextField="Text" DataValueField="Value" AppendDataBoundItems="True" OnInit="ddlModelNumber_Init" OnDataBound="ddlModelNumber_DataBound" Enabled="false">
                        <asp:ListItem></asp:ListItem>
                    </asp:DropDownList>
                    </ContentTemplate>
                    </asp:UpdatePanel>
                </td>

1 个答案:

答案 0 :(得分:0)

你可以用一些JavaScript来做到这一点。您可以让组合框的selectedIndexChanged将值写入第二个组合框所在的隐藏字段和更新面板中。然后在该面板上强制ajax回发以更新第二个组合框的内容。一个简单的方法是让你的组合框选择索引更改事件单击包含第二个组合框的面板中的隐藏按钮。

http://keylimetie.com/blog/2007/12/3/how-to-make-an-ajax-postback-with-javascript/

该链接可以作为指导,以做你想要的。