加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – C#如何在GridView上创建Hyperlink OnClick事件?

发布时间:2020-12-16 07:28:39 所属栏目:asp.Net 来源:网络整理
导读:我在创建我想要的GridView时遇到了麻烦. 我希望用户进入网站,看到附加到数据库的GridView. 列是:ID,InsertionTime,Filepath,ProccessedByUser 现在我希望用户单击他/她想要处理的文件路径.当他/她单击文件路径时,我希望将他们的用户名(使用内置的asp网站身
我在创建我想要的GridView时遇到了麻烦.
我希望用户进入网站,看到附加到数据库的GridView.
列是:ID,InsertionTime,Filepath,ProccessedByUser
现在我希望用户单击他/她想要处理的文件路径.当他/她单击文件路径时,我希望将他们的用户名(使用内置的asp网站身份验证登录)更新(添加)到DB中.

我的标记是标准的,我无需管理代码.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="ID" DataSourceID="AccessDataSource1" 
    onselectedindexchanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
            ReadOnly="True" SortExpression="ID" />
        <asp:BoundField DataField="starttime" HeaderText="starttime" 
            SortExpression="starttime" />
        <asp:HyperLinkField DataNavigateUrlFields="path" DataTextField="path" 
            HeaderText="path" />
        <asp:BoundField DataField="user" HeaderText="user" SortExpression="user" />
    </Columns>
</asp:GridView>

我尝试使用HyperlinkField,但它似乎不支持onlick事件.

有什么建议?
谢谢.

解决方法

我假设您正在寻找具有OnClick事件的 LinkButton控件.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="ID" DataSourceID="AccessDataSource1" 
    onselectedindexchanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
            ReadOnly="True" SortExpression="ID" />
        <asp:BoundField DataField="starttime" HeaderText="starttime" 
            SortExpression="starttime" />
        <asp:TemplateField HeaderText="Path" SortExpression="Filepath">
            <ItemTemplate>
                <asp:LinkButton ID="LbPath" runat="server" 
                    Text='<%# Eval("Filepath") %>'
                    CommandName="PathUpdate" 
                    CommandArgument='<%#Bind("path") %>'>
                </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="user" HeaderText="user" SortExpression="user" />
    </Columns>
</asp:GridView>

现在您可以处理LinkBut??ton的click event或GridView的RowCommand事件.

protected void Gridview1_RowCommand(object sender,GridViewCommandEventArgs e)
{
    if (e.CommandName == "PathUpdate")
    {
        string path= e.CommandArgument.ToString();
        // do you what you need to do
    }
}

请注意,我使用的是TemplateField,它是GridView中最动态的列类型,因为您可以添加任何所需内容,甚至是嵌套的GridViews或UserControls.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读