gpt4 book ai didi

c# - 连接 HyperLinkField 单击到服务器端方法 (c#)

转载 作者:行者123 更新时间:2023-11-30 19:31:50 32 4
gpt4 key购买 nike

我有一个 HyperLinkField,我用数据表中的 url 填充它,数据表中的字段称为 EncodedAbsUrl。

但是,我想改为将此链接连接到代码隐藏方法

我现在在做什么

var encodedAbsUrl = new string[] { "EncodedAbsUrl" };
var hf = new HyperLinkField
{
HeaderText = "Link",
DataTextField = "ServerUrl",
DataNavigateUrlFields = encodedAbsUrl,
DataNavigateUrlFormatString = "{0}",
Target = "_blank",
};

但是我喜欢做这样的事情

var encodedAbsUrl = new string[] { "EncodedAbsUrl" };
var hf = new HyperLinkField
{
HeaderText = "Link",
DataTextField = "ServerUrl",
NavigateUrl = clicker(encodedAbsUrl["{0}"]),
Target = "_blank",
};


protected void clicker(string url)
{
//...
}

好吧,你可以看到我的尝试没有成功:)

感谢任何建议

谢谢!

最佳答案

如果您将使用 HyperLinkField所以你不需要 Clicker或任何回发事件,因为此字段将呈现为 <a>标签。我使用 HyperLink 做了一个示例控制和 LinkButton控制将回发您的页面。

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gv.DataSource = [YourDataSource];
gv.DataBind();
}
}
protected void Clicker(Object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Link")
{
Response.Redirect(e.CommandArgument.ToString());
}
}
protected void gv_DataBinding(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hlink = e.Row.FindControl("hlink") as HyperLink;
hlink.NavigateUrl = ((Person)e.Row.DataItem).NavUrl;
hlink.Text = ((Person)e.Row.DataItem).NavUrl;
hlink.Target = "_blank";

LinkButton lnkButton = e.Row.FindControl("lnkButton") as LinkButton;
lnkButton.Text = ((Person)e.Row.DataItem).NavUrl;
lnkButton.CommandName = "Link";
lnkButton.CommandArgument = ((Person)e.Row.DataItem).NavUrl;
}
}

GridView会喜欢这个

<asp:GridView runat="server" ID="gv" OnRowCommand="Clicker" OnRowDataBound="gv_DataBinding"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink runat="server" ID="hlink"></asp:HyperLink>
<asp:LinkButton runat="server" ID="lnkButton"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

关于c# - 连接 HyperLinkField 单击到服务器端方法 (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6483953/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com