我正在尝试构建一个gridview字段,该字段显示名称并指向包含主题的电子邮件地址的链接。我首先尝试使用DataNavigateUrlFormatString来完成这项工作,但显然在DataNavigateUrlFormatString中使用了一个中断链接,所以不幸的是下面的代码给我留下了一个空链接。
SrcPkt
接下来我尝试使用Eval()和NavigateUrl,但下面的代码给了我这个错误“数据绑定方法,如Eval(),XPath()和Bind()只能在数据绑定控件的上下文中使用。 “
string[] UrlFields = { "bidd_name", "Email", "bidd_number", "bidd_desc", "Bidds_id" };
LinkField = new HyperLinkField();
LinkField.HeaderText = "Buyer";
LinkField.DataTextField = "buyer";
LinkField.HeaderStyle.CssClass = "GVpadding";
LinkField.ItemStyle.CssClass = "GVpadding";
LinkField.DataNavigateUrlFields = UrlFields;
LinkField.DataNavigateUrlFormatString = "mailto:{1} ?subject={2} {3}";
我对错误进行了一些研究,发现我可能不得不使用RowDataBound方法,但我不知道如何解决这个问题。在构建字段后调用下面的方法可以将URL更改为所需的值吗?
EmailLinkField.NavigateUrl = "mailto:" + (string)Eval("Email") + "?subject=" + (string)Eval("bidd_number") + " " + (string)Eval("bidd_desc");
如果是这样,我该如何调用呢?在做这样的事情时,我不确定我需要使用哪些参数。
protected void grddata_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hyp = (HyperLink)e.Row.FindControl("EmailLinkField");
hyp.NavigateUrl = "mailto:" + (string)Eval("Email") + "?subject=" + (string)Eval("bidd_number") + " " + (string)Eval("bidd_desc");
}
}
使用空值会生成“未将对象引用设置为对象的实例”。错误,我不知道发件人或e应该是什么价值。
如果有人可以帮助我获取这些电子邮件生成链接,将不胜感激。我对C#的经验很少,并且一般都没有做过那么多编码,所以请像对待孩子一样对待我。