【问题标题】:How can I send an XML string to an ASCX Repeater Control?如何将 XML 字符串发送到 ASCX 中继器控件?
【发布时间】:2011-11-07 16:48:02
【问题描述】:

我正在一个 ascx 文件中编写一个中继器控件,该文件将一些信息呈现为来自复杂搜索的行。在一个 aspx 文件中,我有一个查询来检索一个 DataView,它为我提供了 XML 字符串以及提供中继器所需的信息。问题是我不知道如何将 XML 字符串(或 DataView 或 DataSet)从 aspx 传递到 ascx 文件,以便呈现信息。

谢谢。

【问题讨论】:

  • 将您的 XML 解析为 IEnumerable 并将其提供为 Repeater.DataSource = <some data source>
  • 那句话到底应该放在哪里?在 ascx 的 html 调用中?喜欢<data:data ID="data" runat="server" />提前谢谢你。

标签: asp.net .net vb.net ascx


【解决方案1】:

您需要在用户控件上公开一个属性或方法,以便引用ASCX 控件的页面可以接收 XML 并对其进行处理(将其绑定到您的转发器)。

您可以像这样在 ASCX 控件中完美地创建一个方法:

public void BindXml(string xml)
{

    //bind the xml to the repeater
}

作为属性...

public string XMLData { set 
                        { 
                          //use a DataSet to load the xml passed and bind it to 
                          //the repeater
                          DataSet dataset = new DataSet();
                          dataset.ReadXml(value);
                          repeater.DataSource=dataset; repeater.DataBind(); 
                          }
                        }

aspx页面可以这样调用方法:

yourusercontrol.BindXML(xml);

或属性:

yourusercontrol.XMLData=xml;

【讨论】:

  • 我认为我可以直接传递DataSet 对象,而不是将其写入XML,然后在ascx 控件上创建另一个DataSet。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 2020-03-21
  • 2020-07-13
  • 1970-01-01
  • 2017-04-25
相关资源
最近更新 更多