【发布时间】:2015-06-29 15:36:20
【问题描述】:
我正在尝试使用 ASP.Net 表单 GridView 显示 XML Web 响应。我是 .NET 框架的新手,所以我在处理一些细节问题。
我正在开发一个搜索引擎,因此 XML 响应是搜索特定短语或单词的结果。这是 XML 响应的示例
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">8</int>
<lst name="params">
<str name="qf">recordkey</str>
<str name="df">text</str>
<str name="echoParams">all</str>
<str name="indent">true</str>
<str name="wt">xml</str>
<str name="q">*:*</str>
</lst>
</lst>
<result name="response" numFound="281" start="0">
<doc>
<str name="Date Created">2014-10-30</str>
<str name="Facility">*****</str>
<str name="Author">*********</str>
<str name="Source System ID">*******</str>
<str name="Data Source">************</str>
<str name="Title">ENGINEERING INITIATION</str>
<long name="_version_">1504985395557826560</long>
</doc>
<doc>
<str name="Date Created">2011-09-30</str>
<str name="Facility">*********</str>
<str name="Author">************</str>
<str name="Source System ID">***</str>
<str name="Data Source">***************</str>
<str name="Title">USE OF REGISTERED....</str>
<long name="_version_">1504985395859816448</long>
</doc>
<doc>.....
...........
我屏蔽了一些内容,但你明白了。
收到响应后,我使用 StreamReader 读取 xml 并将其放入 XMLDocument。
XmlDocument myXMLDocument = new XmlDocument();
GridView1.DataSource = myXMLDocument;
StreamReader myXMLReader = new StreamReader(response.GetResponseStream());
ds.ReadXml(myXMLReader);
GridView1.DataSource = ds.Tables["str"];
GridView1.DataBind();
之后,我将其加载到 DataSet 并将表“str”绑定到产生此结果的 Gridview
name str_Text lst_Id doc_Id
qf recordkey 1
df text 1
echoParams all 1
indent true 1
wt xml 1
q *fire* 1
Date Created 2014-10-30 0
Facility ***** 0
Author **** 0
Source System ID *** 0
Data Source **** 0
Title **** 0
Date Created 2011-09-30 1
Facility **** 1
Author **** 1
Source System ID **** 1
Data Source ***** 1
Title USE OF REGISTERED... 1
Date Created 2011-11-03 2
Facility **** 2
Author ***** 2
Source System ID *** 2
Data Source ******* 2
Title REQUEST... 2
现在,问题是,我在组织网格视图中的内容时遇到了问题。它仅将列名识别为字段名。我希望能够将信息组织成更典型的搜索格式,例如
创建日期 - “后面是标题”
作者姓名
但我无法操纵这些东西,因为它们不被视为字段。所以我的首要问题。如何使用gridview,以便可以基于属性而不是数据集中的列名进行操作?我是否必须以不同的方式将其绑定到网格?是否有需要编码的类型(如按文档 ID)?我真的不在乎我只需要能够做到的方法。
【问题讨论】: