设置asp控件的属性并重新加载更改后的页面
本文关键字:加载 控件 asp 属性 新加载 设置 | 更新日期: 2023-09-27 18:18:43
我有一个复杂的问题,但我会尽量用简单的方式解释它。我有一个带有LinkButton
的主页。在点击该按钮,它改变DataSourceID
属性的ListView
在内容页。问题是,在更改属性值后,我使用Response.Redirect("contentpage.aspx");
加载页面,但这并没有加载我在属性中所做的更改的页面。
MasterPage。Aspx部分代码
<asp:LinkButton
ID="Link_ClothesMen"
runat="server"
OnClick="Link_ClothesMen_Click">Men</asp:LinkButton>
MasterPage.aspx.cs部分代码
protected void Link_ClothesMen_Click (object sender,EventArgs e)
{
ListView ListViewTemp = (ListView)ContentPlaceHolder1.FindControl("ListView1");
ListViewTemp.DataSourceID = "SqlDataSourceClothesMen";
Response.Redirect("ContentPage.aspx"); //This is wrong. Help here
}
ContentPage。Aspx部分代码
<asp:SqlDataSource ID="SqlDataSourceClothesMen" runat="server"
ConnectionString="Data Source=DESKTOP-1EGF4SE'SQLEXPRESS;Initial Catalog=clickstream;Integrated Security=True"
SelectCommand="select * from [ClothesMen]"></asp:SqlDataSource>
<asp:ListView ID="ListView1" runat="server" DataSourceID="" <!--I'm changing this property-->
GroupItemCount="3">
<LayoutTemplate>
<table style="table-layout:fixed;width:100%">
<tr id="groupPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<td id="itemPlaceholder" runat="server">
</td>
</tr>
</GroupTemplate>
<ItemTemplate>
<td align="center">
<asp:Image runat="server" ImageUrl='<%# Eval("ImageUrl") %>' Height="20%" Width="70%" /><br />
<asp:Label ID="ProductTitleLabel" runat="server" Text='<%# Eval("ProductTitle") %>'></asp:Label><br />
<asp:Label ID="PriceLabel" runat="server" Text='<%# Eval("Price") %>'></asp:Label><br />
</td>
</ItemTemplate>
<GroupSeparatorTemplate>
<tr runat="server">
<td colspan="3"><hr /></td>
</tr>
</GroupSeparatorTemplate>
</asp:ListView>
请帮帮我。我希望你对这个问题有一个清楚的了解。
您应该只需要重新绑定列表视图,而不是重定向(并且丢失更改,因为控件状态在响应重定向中不传输)。
ListViewTemp.DataBind();
单击按钮会导致回发到服务器,因此如果这是您试图为视图更新的页面上唯一的元素,则不应该需要完整的重定向。
我明白了。不需要Response.Redirect("ContentPage.aspx");
。单击LinkButton
本身会刷新页面并进行更改。这是解决。我应该在发布这个问题之前想到这一点。谢谢!