我会恭喜你的帮助。 我正在尝试向我的页面添加更新面板,因此它只刷新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">
</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>
</td>
</tr>
<tr>
<td class="style5">
</td>
<td>
</td>
</tr>
<tr>
<td class="style5">
</td>
<td>
</td>
</tr>
</table>
</div>
</asp:Content>
tahnx寻求帮助
答案 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>