在表单加载asp.net中获取网格视图选中的行

时间:2013-09-11 04:33:52

标签: asp.net gridview

我有一个网格视图,用于在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"]);
}

如何检查在页面加载中选择的每一行以重定向到其文件?

2 个答案:

答案 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...
    }
}