数据绑定:'System.String'不包含名称为'link'的属性. [英] DataBinding: 'System.String' does not contain a property with the name 'link'.

查看:222
本文介绍了数据绑定:'System.String'不包含名称为'link'的属性.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

< asp:GridView ID ="grd" runat ="server" OnSelectedIndexChanged ="grd_SelectedIndexChanged">
<列> < asp:TemplateField>
< itemtemplate>
< asp:HyperLink ID ="HyperLink2" runat =服务器" Target ="_ blank" NavigateUrl =''<%#Eval("link")%>''>







< dataset>
< link>〜/Default3.aspx</link>
< text> asdfoYYY
< date> 2011/1/1

< dataset>
< link>〜/Upload/DSC_0052.JPG</link>
< text> checkit
< date> 2011/1/1

< dataset>
< link>〜\ Upload \ id.txt</link>
< text>如果...
< date> 2011/1/1

< dataset>
< link>〜\ Upload \ id.txt</link>
< text>这是asj asjfj
< date> 2011/1/1

< dataset>
< link>〜\ Upload \ id.txt</link>
< text> 1212是asj asjfj
< date> 2012/12/12

< dataset>
< link>〜\ Upload \ Landlordreferenceletter1.docx.doc</link>
< text> lanlord

受保护的无效Page_Load(对象发送者,EventArgs e)
{
如果(!Page.IsPostBack)
{
binddata();
}

}
void binddata()
{



XDocument xmlDoc = XDocument.Load(Server.MapPath("File.xml"));

DateTime日期=新的DateTime(2012,12,12);


var queryWeek =来自xmlDoc.Descendants("dataset")中的数据集

选择数据集.Element(链接").Value;




grd.DataSource = queryWeek;

grd.DataBind();

}



ERROR =>>>>> DataBinding:``System.String''不包含名称为``link''的属性.

告诉我原因

<asp:GridView ID="grd" runat="server" OnSelectedIndexChanged="grd_SelectedIndexChanged">
<columns> <asp:TemplateField>
<itemtemplate>
<asp:HyperLink ID="HyperLink2" runat="server" Target="_blank" NavigateUrl=''<%#Eval("link") %>''>







<dataset>
<link>~/Default3.aspx</link>
<text>asdfoYYY
<date>2011/1/1

<dataset>
<link>~/Upload/DSC_0052.JPG</link>
<text>checkit
<date>2011/1/1

<dataset>
<link>~\Upload\id.txt</link>
<text>this if
<date>2011/1/1

<dataset>
<link>~\Upload\id.txt</link>
<text>this is asj asjfj
<date>2011/1/1

<dataset>
<link>~\Upload\id.txt</link>
<text>1212 is asj asjfj
<date>2012/12/12

<dataset>
<link>~\Upload\Landlordreferenceletter1.docx.doc</link>
<text>lanlord

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
binddata();
}

}
void binddata()
{



XDocument xmlDoc = XDocument.Load(Server.MapPath("File.xml"));

DateTime date = new DateTime(2012,12,12);


var queryWeek = from dataset in xmlDoc.Descendants("dataset")

select dataset.Element("link").Value;




grd.DataSource = queryWeek;

grd.DataBind();

}



ERROR=>>>>DataBinding: ''System.String'' does not contain a property with the name ''link''.

TELL ME Reason

推荐答案



您是否尝试过以下操作:

Hi,

Did you tried the following:

<asp:HyperLink ID="HyperLink2" runat="server" Target="_blank" NavigateUrl='<%# Container.DataItem %>'>



那是因为您将IEnumerable<string></string>绑定到了DataSource,所以只有字符串(而不是任何其他类型的对象).
因此,使用Eval()的绑定不起作用(因为您不想访问字符串的属性,而是字符串本身).

希望这会有所帮助.

致以诚挚的问候,祝您编程愉快,
克里斯



That is beacuse you bind a IEnumerable<string></string> to your DataSource, so you have just strings (and not any other kind of object).
Therefor the binding using Eval() does not work (beacuse you do not want to access a property of string but the string itself).

Hope this helps.

Best regards and happy coding,
Chris


这篇关于数据绑定:'System.String'不包含名称为'link'的属性.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆