C# 将LinkButton添加到gridview小计行
我正在尝试将带有URL的linkbutton添加到gridview小计行。我正在使用下面的代码,无法添加URL 是否有人能就如何处理这一问题提供建议 更新1:C# 将LinkButton添加到gridview小计行,c#,asp.net,.net,gridview,C#,Asp.net,.net,Gridview,我正在尝试将带有URL的linkbutton添加到gridview小计行。我正在使用下面的代码,无法添加URL 是否有人能就如何处理这一问题提供建议 更新1: private void AddTotalRow(string labelText, string value) { GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Normal)
private void AddTotalRow(string labelText, string value)
{
GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Normal);
row.BackColor = ColorTranslator.FromHtml("#F9F9F9");
row.Cells.AddRange(new TableCell[3] { new TableCell{ Text = labelText, HorizontalAlign = HorizontalAlign.Right },
new TableCell{ Text = value, HorizontalAlign = HorizontalAlign.Right },
HyperLinkCell(value, "http://www.google.com") });
}
protected TableCell HyperLinkCell(string text, string url)
{
TableCell cell = new TableCell();
HyperLink link = new HyperLink();
try
{
link.Text = text;
link.Font.Underline = true;
link.Target = "_blank";
link.NavigateUrl = url;
link.Attributes.Add("style", "color:Black;");
cell.Controls.Add(link);
}
catch (Exception ex)
{
throw ex;
}
return cell;
}
请尝试以下方法:
protected HyperLink AddHyperLink(string cell, string strURL)
{
HyperLink h1 = new HyperLink();
TableCell cells = new TableCell();
try
{
h1.Text = cell;
h1.Font.Underline = true;
h1.Target = "_blank";
h1.NavigateUrl = strURL;
h1.Attributes.Add("style", "color:black");
cells.Controls.Add(h1);
}
catch(Exception ex)
{
}
return h1;
}
您希望向表中添加新单元格。但您也在尝试将
LinkButton
添加到TableCell集合中
另外,在创建新链接按钮时,您正在设置
Text=AddHyperLink
。AddHyperLink方法返回超链接对象,显然您不能将其分配给文本,因为它是字符串类型
此外,您不能将LinkButton添加到TableCell集合
您需要如下更改代码
private void AddTotalRow(string labelText, string value)
{
GridViewRow row = new GridViewRow(0,0, DataControlwRowType.DataRow, DataControlRowState.Normal);
row.BackColor = ColorTranslator.FromHtml("#F9F9F9");
row.Cells.AddRange(new TableCell[4] { new TableCell(),
new TableCell{ Text = labelText, HorizontalAlign = HorizontalAlign.Right }.
new TableCell{ Text = value, HorizontalAlign = HorizontalAlign.Right),
//Calling HyperLinkCell method which will return a TableCell with HyperLink in it.
HyperLinkCell(value, "http://www.google.com")
});
gvData.Rows.Add(row);
}
protected TableCell (string text, string url)
{
//Create new Cell
TableCell cell = new TableCell();
//Create new HyperLink.
HyperLink link = new HyperLink();
try
{
link.Text = text;
link.Font.UnderLine = true;
link.Target = "_blank";
link.NavigationUrl = url;
link.Attributes.Add("style", "color:Black;");
//Add hyperlink to the cell.
cell.Controls.Add(link);
}
catch(Exception ex)
{
}
//Return Cell with HyperLink.
return cell;
}
这将解决错误,并为您提供在gridviewrow中添加带有超链接的单元格的正确方法。您有
字符串值
,并将其传递给AddHyperLink
方法。但是AddHyperLink
方法将TableCell
作为第一个参数。因此,不能在那里传递字符串而不是TableCell。这就是你看到这个错误的原因。@ChetanRanpariya-更新了我的帖子。你能调查一下吗。无法传递URL。创建新链接按钮时,您正在设置Text=AddHyperLink
。AddHyperLink方法返回超链接对象,您显然无法将其分配给文本,因为它是字符串类型。您需要返回基本方法,了解数据类型、分配和错误消息。您还需要在问题中共享代码,而不是图像。我们无法从图像复制粘贴您的代码。已更新我的帖子。你能调查一下吗。无法传递URL。现在,第二个参数的类型为Hyperlink,但传递的是字符串。因此出现了错误。您需要传递函数声明中定义的相同类型变量。我已更新了答案。请保持AddTotalRow不变。替换AddHyperLink方法。它表示无法将类型“HyperLink”隐式转换为字符串。更新了我的帖子。两个参数现在都是字符串。我尝试了,但没有添加行。更新了我帖子中的代码。你现在有错误吗?我更新了我的答案,现在请检查我在这行gvData.Rows.Add(row)中有错误代码>。它表示GridViewRowCollection不包含添加的定义。您不能以这种方式向GridView添加新行。你需要提出不同的问题,并详细说明你到底想做什么。如果此答案帮助您解决了所遇到的错误,那么您可以将其标记为有用的答案,并就向网格视图添加新行的问题询问另一个问题。