我目前有一个XML文件,在提交文本数据时会保存信息。我还有一个TextBox和Button,供用户搜索他们提交的信息。
例如,我希望用户能够搜索注册号,一旦他们按下搜索按钮,结果将仅显示完全匹配。我目前通过GridView绑定了XML数据,我目前正在为搜索部分使用未完成的if / else语句,但是除非我在if / else语句中输入确切数据,否则数据不会显示在客户端。有什么选择可以解决这个问题?
这是C#
protected void Searchbutton_Click(object sender, EventArgs e)
{
DataSet ds;
string filepath = Server.MapPath("~/App_Data/RegData.xml");
ds = new DataSet();
ds.ReadXml(filepath);
RES.DataSource = ds.Tables[1].DefaultView;
RES.DataBind();
var sr = Searchreg.Text;
var dss = Convert.ToString(ds);
if (sr.Equals("12345678"))
{
RES.DataSource = ds.Tables[1].DefaultView;
}
else
{
none.Visible = true;
RES.Visible = false;
}
}
这是来自aspx页面
<table>
<tr>
<td>
<asp:TextBox runat="server" ID="Searchreg"></asp:TextBox>
</td>
<td>
<asp:Button runat="server" ID="Searchbutton" Text="Search" OnClick="Searchbutton_Click" />
</td>
</tr>
<tr>
<td>
<asp:GridView runat="server" ID="RES" CellPadding="4" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Registration" DataField="Registration" />
</Columns>
</asp:GridView>
</td>
<td>
<asp:Label runat="server" ID="none" Text="No Results" Visible="false"></asp:Label>
</td>
</tr>
</table>
这是XML文件中的一个示例:
<registration>
<own>
<Name>afadf</Name>
<Address>afaf</Address>
<Number>adfad</Number>
<Registration>12345678</Registration>
<BoatLength>adfd</BoatLength>
<ManufacturerYear>adf</ManufacturerYear>
<LeaseStart>16/06/2016</LeaseStart>
<LeaseEnd>24/06/2016</LeaseEnd>
<Cost>Total Cost: $40</Cost>
</own>
<lease></lease>
</registration>
答案 0 :(得分:0)
您可以向DataTable
RowFilter
DataView dv = ds.Tables[1].DefaultView;
dv.RowFilter = "registration = " + Searchreg.Text; // use correct column name.
RES.DataSource = = dv;