C# 无法从gridview链接按钮调用事件

C# 无法从gridview链接按钮调用事件,c#,asp.net,C#,Asp.net,基本上,我希望通过单击按钮来设置会话folo,但我没有这样做 调用abcde函数()失败,不知道设置什么,我尝试了onRowCommand、OnDataBinding、OnDataBinding <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> y之所以这样做,是因为我的下一页函数取决于会话您需要在likbutton声明中设置命

基本上,我希望通过单击按钮来设置会话folo,但我没有这样做

调用abcde函数()失败,不知道设置什么,我尝试了onRowCommand、OnDataBinding、OnDataBinding

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">

y之所以这样做,是因为我的下一页函数取决于会话

您需要在likbutton声明中设置
命令参数
,以便您可以使用它进行绑定


您需要在likbutton声明中设置
CommandArgument
,以便使用它进行绑定


好的,我不完全确定你的意思,但是如果你问如何在数据绑定时操作网格中的控件,它是这样的:

    protected void grdvResults_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.DataItem != null)
        {
           ((LinkButton)e.Row.FindControl("lnkname")).PostBackUrl = "~/somewhere/" + Session["path"].ToString();
        }
    }

好的,我不完全确定你的意思,但是如果你问如何在数据绑定时操作网格中的控件,它是这样的:

    protected void grdvResults_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.DataItem != null)
        {
           ((LinkButton)e.Row.FindControl("lnkname")).PostBackUrl = "~/somewhere/" + Session["path"].ToString();
        }
    }

我使用gridview
row命令
aspx代码段

<asp:TemplateField>
    <ItemTemplate>
         <asp:LinkButton ID="btnLink" runat="server" CommandName="btnLinkClick" 
                 CommandArgument='<%# Bind("roll") %>'  Text="Find Name"></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>
这里有一件有趣的事情,若你们设置了一个postbackurl,那个么第二次你们并没有到达服务器端时,它就会转到你们给定的url


如果您只想设置url,那么很容易创建一个属性
url
,然后通过
按钮.PostBackUrl
绑定它。另外,如果您需要客户端的一些值,那么设置
eventagument

我使用gridview
row命令
aspx代码段

<asp:TemplateField>
    <ItemTemplate>
         <asp:LinkButton ID="btnLink" runat="server" CommandName="btnLinkClick" 
                 CommandArgument='<%# Bind("roll") %>'  Text="Find Name"></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>
这里有一件有趣的事情,若你们设置了一个postbackurl,那个么第二次你们并没有到达服务器端时,它就会转到你们给定的url


如果您只想设置url,那么很容易创建一个属性
url
,然后通过
按钮.PostBackUrl
绑定它。另外,如果你需要客户端的一些值,那么设置
eventagument

@ravi你能给我举个基本的例子作为参考吗?我整个上午都没能做到so@ravi你能给我举个基本的例子作为参考吗?我整个上午都没能做到这一点,这个关键字缺少参考,这就是我目前面临的问题==嗨,我可以让它像在点击时显示结果吗?因为现在的结果是直接重定向到视频页面~项此关键字缺少引用,这是我当前面临的问题==嗨,我可以让它像在点击时显示结果吗?因为现在的结果是直接重定向到视频页面~会话的第一个错误,无法将对象转换为字符串;在我删除会话后,他们无法识别var button=(如果您设置
string path=“~/somelocation”
session[“path”]=path
,那么
button.PostBackUrl=path
在这里出现错误?(要从会话中获取值,您必须强制转换值,假设
session[“path”].ToString()
)会话的第一个错误,无法将对象转换为字符串;在我删除会话后,他们无法识别var button=(如果您在此处设置
string path=“~/somelocation”
session[“path”]=path
,那么
button.PostBackUrl=path
会出现错误吗?(若要从会话中获取值,您必须强制转换该值,假设
session[“path”]。ToString()
<asp:TemplateField>
    <ItemTemplate>
         <asp:LinkButton ID="btnLink" runat="server" CommandName="btnLinkClick" 
                 CommandArgument='<%# Bind("roll") %>'  Text="Find Name"></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "btnLinkClick")
        {
            string path = //some path;
            Session["path"] = path;

            var button = e.CommandSource as LinkButton;
            button.PostBackUrl = path;
        }
    }