gpt4 book ai didi

c# - 在 GridView asp.net 4 c# 的 TemplateField 中将变量读入 NavigateUrl

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:39 25 4
gpt4 key购买 nike

我是编程新手。我创建了一个 GridView 并使用 SqlDataSource 进行绑定(bind)。网格显示来自 SQL Server 数据库的几个变量,包括超文本链接。

对于特定领域,我需要:- 评估数据库字段“Journal_title”- 将其作为较长字符串的一部分插入到 TemplateField.NavigateUrl 中- 如果另一个字段(“Indexed_NIH”)为 NULL,则隐藏链接

该字符串的语法是正确的,如果我插入一个标题也能正常工作,但我需要从数据库中读取所有标题并将它们插入到 URL 中。

我当前的代码成功地在适当的记录中显示链接文本(即当“Indexed_NIH != NULL”时),但 NavigateUrl 显示不正确。

欢迎提出任何建议 - 请记住我是新手!

<asp:TemplateField HeaderText="PubMed">
<ItemTemplate>
<asp:HyperLink ID="lnkPubMed" runat="server" Text="S" Target="_blank" NavigateUrl='http://www.ncbi.nlm.nih.gov/pubmed?term="<%# Eval("Journal_title") %>"[Journal]) AND ("last 3 years" [PDat])"' Visible='<%# Convert.ToString(Eval("Indexed_NIH")) == "True" ? true : false %>' >
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>

代码隐藏中没有任何内容。

最佳答案

好的方法是利用网格控件的 RowDataBound 事件并将链接分配给超链接按钮

protected void Gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
object[] dataitems = ((DataRowView)e.Row.DataItem).Row.ItemArray;
HyperLink hl = (HyperLink)e.Row.FindControl(ControlName);
if(hl!=null)
{
//write code to assing value to link
}
}
}

关于c# - 在 GridView asp.net 4 c# 的 TemplateField 中将变量读入 NavigateUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11455441/

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