我有一个.cs文件,用于构建xml文档并将其存储在变量中。
我想将它“注入”我的<asp:XmlDataSource>
,这样我就不必保存每个xml文件(每次加载都不一样)。我怎么能这样做?
在我的codebehind cs文件中,我有:
XmlDocument x = blahblah
XmlDataSource MySource = new XmlDataSource();
MySource.Data = x.InnerXml
在我的aspx文件中,我有一个表单标记:
<asp:XmlDataSource ID="MySource" runat="server" >
</asp:XmlDataSource>
<asp:TreeView ID="TreeView1" DataSourceId="MySource" runat="server" />
然而,当我运行它时,我得到了简单:对象引用没有设置为对象的实例
答案 0 :(得分:2)
如果无法识别XmlDataSource的MySource
ID,则问题出在其他地方。在正常情况下,您在ASPX文件中声明的任何runat="server"
控件都应该可以在代码隐藏文件中访问。
您应该检查ASPX是否正确映射到代码隐藏文件(@Page
声明)。
此外,您可以直接将字符串XML分配到XmlDataSource.Data
属性而不使用中间变量,因为它接受字符串作为输入。
答案 1 :(得分:0)
我相信你可能刚刚错过了对XmlDataSource的DataBind()方法的调用。
MySource.DataBind();