0

次の文字列があります:

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

今、dcalaspx: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、データを表示するために実装する方法ですか?

4

1 に答える 1

2

取得したデータを GridView コントロールに表示するだけの場合。データ ソースをコントロールにバインドするか、プログラムで列と行を追加することができます。

IListSource または IList インターフェイスを実装する任意のデータ ソースをバインドできます。resultこれは、質問のタイトルに記載されているように、文字列を直接バインドできないことを意味します。取得したデータを List などの互換性のあるデータ構造に格納して、データ ソースとしてバインドする必要があります。

データバインディングを使用するには、dcandalを辞書のようなデータ構造に保存できます。2 列のデータのみを表示するとします。

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 ステートメントでオブジェクトをデータ ソースとして使用する可能性を検討する必要があります。

于 2012-09-07T10:15:20.050 に答える