我需要使用Response.Redirect()
重定向到带有查询字符串值的页面,因为我无法设置此值。
我有一个包含ImageButton
和Label
的转发器,标签的文本是从DB检索的,我需要回复一个网址为"ShowCourse.aspx?coursename=value"
的页面,其中value是值标签。
转发器代码:
<asp:Repeater ID="CoursesListRepeater" runat="server" DataSourceID="FetchCourse">
<ItemTemplate>
<table>
<tr>
<td>
<asp:ImageButton ID="CourseImage" runat="server" Height="90" Width="90" ImageUrl='<%# Eval("CourseImage")%>' CssClass="imageButtons" OnClick="CourseImage_Click" />
</td>
<td>
<asp:Label runat="server" ID="CourseNameLabel"><a href='<%#String.Format("AboutCourse.aspx?coursename={0}",Eval("CourseName")) %>' style="font-family: 'Buxton Sketch'; font-size: 40px;"><%#Eval("CourseName") %></a></asp:Label>
<br />
<asp:Label ID="CategoryLabel" runat="server" Font-Size="22px" ForeColor="Gray" Text='<%#Eval("CourseCategory") %>' />
<br />
<asp:Label ID="DescriptionLabel" Font-Size="13px" runat="server" Text='<%#Eval("CourseDescription") %>' ForeColor="DarkRed" />
</td>
</tr>
<hr style="margin-top: 30px; border-radius: 5px;" />
</table>
</ItemTemplate>
</asp:Repeater>
答案 0 :(得分:0)
您可以使用CommandName&amp; ImageButton上的CommandArgument如下:
模板:
<asp:Repeater ID="CoursesListRepeater" runat="server" DataSourceID="FetchCourse"
onitemcommand="CoursesListRepeater_ItemCommand"></asp:Repeater>
....
<asp:ImageButton ID="CourseImage" runat="server" Height="90" Width="90" ImageUrl='<%# Eval("CourseImage")%>' CssClass="imageButtons"
CommandName="ShowCourse" CommandArgument='AboutCourse.aspx?coursename=<%# Eval("CourseName") %>' />
代码背后:
protected void CoursesListRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "ShowCourse")
{
Response.Redirect(e.CommandArgument.ToString());
}
}
答案 1 :(得分:0)
最好在您的班级中添加名为Url
的媒体,并使用上述方法并设置CommandArgument='<%# Eval("Url")%>'
请注意,您必须从我们的代码后面创建重定向网址,并将其设置为您新添加的Repeater的数据项Url
属性