将UpdatePanel添加到aspx页面

时间:2012-10-06 14:56:50

标签: asp.net updatepanel scriptmanager

我会恭喜你的帮助。 我正在尝试向我的页面添加更新面板,因此它只刷新gridview而不是孔页面。 我不知道它在不同的地方,但它似乎没有工作,仍然孔页刷新。 我应该在哪里插入?

我有一个下拉列表,通过我填充gridview。 这是代码:

 <%@ Page Title="All Products" Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true" CodeFile="All.aspx.cs" Inherits="Catalog_All" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <style type="text/css">
        .style4
        {
            width: 100%;
        }
        .style5
        {
            width: 620px;
        }
        .style6
        {
            font-size: large;
            text-decoration: underline;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>

  <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" 
                    AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="CategoryName" 
                    DataValueField="categoryId" 
        onselectedindexchanged="DropDownList1_SelectedIndexChanged">
                    <asp:ListItem Value="">choose pet</asp:ListItem>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:AllPets %>" 
                    SelectCommand="SelectAllCategories" SelectCommandType="StoredProcedure">
                </asp:SqlDataSource>





    <table class="style4">
        <tr>
            <td colspan="2" class="style6">
                <strong>All products</strong></td>
        </tr>

        <tr>
            <td class="style5">
                &nbsp;</td>
            <td>

            </td>
        </tr>
        <tr>

            <td class="style5">

                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                    DataKeyNames="ProductID" DataSourceID="SqlDataSource1" AllowPaging="True">


                    <Columns>
                        <asp:BoundField DataField="ProductName" HeaderText="product" 
                            SortExpression="ProductName" />
                        <asp:ImageField DataAlternateTextField="picPath" DataImageUrlField="picPath" 
                            HeaderText="pic">
        </asp:ImageField>
                        <asp:BoundField DataField="Price" HeaderText="price" 
                            SortExpression="Price" />
                        <asp:BoundField DataField="Summary" HeaderText="des" 
                            SortExpression="Summary" />
                    </Columns>

                </asp:GridView>

                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:get_products_bypet %>" 
                    SelectCommand="get_products_bypet" SelectCommandType="StoredProcedure">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="DropDownList1" Name="categoryId" 
                            PropertyName="SelectedValue" Type="Int32" />
                    </SelectParameters>
                </asp:SqlDataSource>


            </td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style5">
                &nbsp;</td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style5">
                &nbsp;</td>
            <td>
                &nbsp;</td>
        </tr>
    </table>


</div>

</asp:Content>

tahnx寻求帮助

2 个答案:

答案 0 :(得分:1)

在Content标记之后添加它,直到最后,因为您使用DropDownList进行自动完整回发

    <asp:Content ID="Content2" ..>
        <asp:UpdatePanel ID="updPanl" runat="server" RenderMode="Block" UpdateMode="Conditional" >
        <ContentTemplate>
       ........ rest code .........
        </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Content>

答案 1 :(得分:0)

尝试此操作,将下拉列表和gridview放在同一个更新面板中。如果您不想将下拉列表放在同一个面板中check the second answer

<asp:UpdatePanel runat="server" ID="Upd">
<ContentTemplate>

      <%-- Dropdown list here should work --%>

      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                DataKeyNames="ProductID" DataSourceID="SqlDataSource1" AllowPaging="True">


                <Columns>
                  ....
                </Columns>

            </asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

如果您不想将下拉列表放在同一个更新面板中,请使用“触发器”

<%-- dropdown list outside here --%>
<asp:UpdatePanel runat="server" ID="Upd">
 <ContentTemplate>
       <%-- Only your Gridview here --%>
 </ContentTemplate>

 <Triggers>
 <asp:AsyncPostBackTrigger ControlID="DropdownList1" 
     EventName="SelectedIndexChange" />
 </Triggers>
 </asp:UpdatePanel>