Access Repeater控制功能

时间:2015-05-29 01:14:56

标签: c# asp.net

我需要使用Response.Redirect()重定向到带有查询字符串值的页面,因为我无法设置此值。 我有一个包含ImageButtonLabel的转发器,标签的文本是从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>

2 个答案:

答案 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属性