无法在数据表中正确显示URL链接

本文关键字:显示 URL 链接 数据表 | 更新日期: 2023-09-27 18:14:12

我应该在数据表中显示标题,名称,内容和URL,我下面的代码可以工作,但它显示6列而不是4列。我使用超链接是因为我想将链接绑定到我的数据表。对于每个搜索结果,我想在数据表中显示结果。我的for循环有什么问题?为什么我得到3列的URL?我想只有一个URL列,我可以点击相关内容的链接。

    protected void searchButton_Click(object sender, EventArgs e)
    {
        SPWeb objCurrentWeb;
        SPList objSSList;
        String searchWord = searchBox.Text;
        int intMemberIndex = 0;
        /*WebRequest objWebRequest;
        WebResponse objWebResponse;
        Stream objResponseStream;
        StreamReader objStreamReader;*/

        objCurrentWeb = SPContext.Current.Web;
        objSSList = objCurrentWeb.Lists["Sales Materials"];
        try
        {
            DataTable result = new DataTable();
            result.Columns.Add("Title");
            result.Columns.Add("Name");
            result.Columns.Add("Content");
            result.Columns.Add("Link");

            foreach (SPListItem objSSListItem in objSSList.Items)
            {
                String title = objSSListItem["Title"].ToString();
                String name = objSSListItem["Name"].ToString();
                String content = objSSListItem["Content Type"].ToString();

                if (title.ToUpper().Contains(searchWord.ToUpper()) || name.ToUpper().Contains(searchWord.ToUpper()) || content.ToUpper().Contains(searchWord.ToUpper()))
                {
                    //assign the list item ID to the intMemberIndex variable and exit
                    intMemberIndex = objSSListItem.ID;
                    String url = "http:google.com/" + objSSListItem.Url;
                    HyperLinkField hfield = new HyperLinkField();
                    hfield.HeaderText = "Link";
                    hfield.NavigateUrl = url;
                    hfield.DataTextField = "Link";
                    resultGrid.Columns.Add(hfield);
                    result.Rows.Add(title, name, content,url);      
                }
            }
           this.resultGrid.DataSource = result;
           this.resultGrid.Visible = true;
            this.resultGrid.DataBind();
        }
        catch (Exception ex)
        {
            resultLabel.Text = ex.Message;
        }
    }

无法在数据表中正确显示URL链接

在for循环的每次循环中,如果条件为真,则向数据网格添加一个新列:

resultGrid.Columns.Add(hfield);

如果你也发布你的数据表标记,你会得到一个更具体的解决方案。