如何绑定asp:grid中字符串的数据?

时间:2012-09-06 07:13:12

标签: c# asp.net html gridview

我有一个以下字符串:

for(#some conditions){    
 ##
result += "<tr><td>" + dc + "</td><td>" + al + "</td><tr>"; 
}

现在,我想使用dc在HTML输入文本区域中显示alaspx:grid的加载次数。

例如,结果的值为:

result =  <tr><td>1111</td><td>23</td><td><tr><td>22222</td><td>43</td><tr>

现在我想使用grid

以下列格式显示数据
dc       al
1111     23
222222   43

目前,我正在使用以下命令填充文本区域。

<script type = "text/javascript">
    function submit_a()
    {
        $.post("../AllocationValidator.aspx", { "data": escape(validatorXML), "scenarioID": scenarioID }, function (result) {
            alert("Data Saved!");
            $("#allocations").empty();
            $("#allocations").html(result);
            BodyLoad();
        });
    }    
</script>

<div id = "allocations" style = "width: 650px; padding: 10px; border: 1px solid black;height: 150px; overflow:scroll;"></div>

我的问题是如何实现asp:grid来显示数据?

1 个答案:

答案 0 :(得分:2)

如果您只想在GridView控件中显示检索到的数据。您可以将数据源绑定到控件,也可以以编程方式添加列和行。

您可以绑定任何实现IListSource或IList接口的数据源。这意味着您无法直接绑定result字符串,如问题标题中所述。您必须将检索到的数据存储在兼容的数据结构中,例如List,以将其绑定为数据源。

要使用数据绑定,您可以将dcal保存在类似字典的数据结构中。假设您只想显示两列数据。

var data = new Dictionary<string, string>();
for (/* Condition */)
{ 
    data.Add(dc, al);
}
grid.DataSource = data;
grid.DataBind();

相应的网格将是

<asp:GridView ID="grid" runat="server" AutoGenerateColumns="false">
<Columns>
    <asp:BoundField DataField="Key" HeaderText="dc"/>
    <asp:BoundField DataField="Value" HeaderText="al" />
</Columns> 
</asp:GridView>

如果您使用foreach生成result字符串,那么您应该考虑使用foreach语句中的对象作为数据源的可能性。