我有一个网格视图,用于在asp.net网站上显示文章列表。当用户点击每篇文章的“显示文章”链接(网格视图行)时,如果用户通过身份验证,我希望加载文章文件:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
EnableModelValidation="True" GridLines="None" Width="100%">
<Columns >
<asp:TemplateField>
<ItemTemplate>
<table style="width:100%;border-color:Gray; border-style:solid; border-width:2px; padding:0;">
<tr style="background-color:White; width:100%;">
<td rowspan="2" style="height:70px;width:10%" ><img alt="" src="Images/Article.jpg" width="70px" height="70px"></td>
<td><table width="100%"><tr>
<td width="50%"><asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl='<%# Eval("ArticlePath","ArticlesList.aspx?Code={0}") %>'>
<p style="font-family:B Titr; font-size:13px;"><%#Eval("ArticleTitle")%></p></asp:HyperLink> </td>
<td style="color:Gray; width:30%">article group:<span> <%#Eval("Title")%></span></td>
<td style="text-align:left; width:20%" ><p><%# SDKClass.GetFarsiDate(Eval("ArticleAddedDate", "{0:D}"), true)%></td>
</tr>
<tr >
<td colspan="2"><p style="font-family:B Zar; font-size:14px;"><%#Eval("ArticleAbstract")%></p> </td>
<td style=" text-align:left; font-size:10" > <asp:HyperLink ID="HyperLink2" runat="server" Text="show article"
NavigateUrl='<%# Eval("ArticlePath","ArticlesList.aspx?Code={0}") %>'>
</asp:HyperLink>
</td></tr>
</table>
</td>
</table>
<hr style="color:Orange">
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
并在页面加载中:
if (Request.QueryString["Code"] != null)
{
Response.Redirect(Request.QueryString["Code"]);
}
如何检查在页面加载中选择的每一行以重定向到其文件?
答案 0 :(得分:0)
在加载网格之前,根据用户过滤数据。
答案 1 :(得分:0)
您可以将GridView
替换为RowCommand
,如下所示,使用Hyperlink
的{{1}}事件。
LinkButton
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
EnableModelValidation="True" GridLines="None" Width="100%"
OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkArticle" runat="server"
CommandArgument='<%# Eval("ArticlePath") %>'
CommandName="ShowArticle"
Text='<%# Eval("ArticleTitle") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
事件:
RowCommand
编辑:发表评论后
然后,您需要在要重定向的页面上检查用户是否已通过身份验证。如下......
protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ShowArticle")
{
//Check here if user is authenticated...
//For example
if (Session["user"] != null)
Response.Redirect("~/YourPath" + Convert.ToString(e.CommandArgument));
//CommandArgument would contain your article path...
}
}