1

DataTable を作成し、その中に行/列を設定しています。

ただし、GridView にバインドすると、1 つの列に割り当てたテキストが表示されません。

コード:

        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
        dt.Columns.Add(new DataColumn("Column1", typeof(string)));

        DataRow dr = dt.NewRow();
        dr["RowNumber"] = 1;
        dr["Column1"] = "some text";
        dt.Rows.Add(dr);

        dr = dt.NewRow();
        dr["RowNumber"] = 2;
        dr["Column1"] = "more text";
        dt.Rows.Add(dr);

        dr = dt.NewRow();
        dr["RowNumber"] = 3;
        dr["Column1"] = "and more text";
        dt.Rows.Add(dr);

        Gridview2.DataSource = dt;
        Gridview2.DataBind();

グリッドビューには最初の列 (1 ~ 3 の数字) のみが表示されますが、テキストを含む 2 番目の列はグリッドビューに表示されません。

何か案は?

ありがとう!

編集: 1 列目のグリッドビューは BoundField にありますが、2 列目は TemplateFied...ItemTemplate 内にあります。

   <asp:gridview ID="Gridview2" runat="server" ShowFooter="true" GridLines="None"  
            AutoGenerateColumns="false"  >
    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    <EditRowStyle BackColor="#999999" />
    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    <SortedAscendingCellStyle BackColor="#E9E7E2" />
    <SortedAscendingHeaderStyle BackColor="#506C8C" />
    <SortedDescendingCellStyle BackColor="#FFFDF8" />
    <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="#" ItemStyle-Width="30px" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" Width="300"></asp:TextBox>
    </ItemTemplate>
    <FooterStyle HorizontalAlign="Right" />
    <FooterTemplate>
     <asp:Button ID="ButtonAdd1" runat="server" Text="Add Statement" onclick="ButtonAdd1_Click" />
    </FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
4

2 に答える 2

1

の 2 列目を使用していませんgridview。次のように別のバインドされたフィールドを使用するか

<asp:BoundField DataField="Column1" HeaderText="#" ItemStyle-Width="30px" />

または、次のようにファイルされたテンプレートを変更します

 <ItemTemplate>
    <asp:TextBox ID="TextBox1" Text='<%# Eval("Column1") %>'  runat="server" Width="300">     
    </asp:TextBox>
</ItemTemplate>

編集 1

あなたの構造はgridviewあなたが持っているように奇妙です

 <FooterStyle HorizontalAlign="Right" />
<FooterTemplate>
 <asp:Button ID="ButtonAdd1" runat="server" Text="Add Statement" 
             onclick="ButtonAdd1_Click" />
</FooterTemplate>

内部<asp:TemplateField>

于 2013-04-17T06:57:58.917 に答える
0

このようなマークアップを行うことができます。要件に基づいてラベル/テキストボックスを使用してください

<asp:TemplateField HeaderText="Column1">  
<ItemTemplate> 
 <asp:Label ID="lblColumn1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Column1")%'></asp:Label>
</ItemTemplate> </asp:TemplateField>
于 2013-04-17T07:09:24.060 に答える