2016-07-27 6 views
0

GridViewにRadioButtonとCreditCardListのデータを入力しようとしています。しかし、それは各フィールドの列を2倍にしています...列の1つの完全なセットと別の完全なセット(RadioButtonを除く)私はcreditCardList.items.Countをチェックし、それがちょうど1(それは)であることを確認しました。私は間違って何をしていますか?GridViewのダブルカラム、C#のコードの背後に構築

ASPX:背後

<asp:GridView ID="gvCards" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"> 
     <Columns> 
      <asp:TemplateField HeaderText="Sel"> 
       <ItemTemplate> 
        <asp:RadioButton ID="Sel" runat="server" GroupName="rad" /> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:BoundField DataField="Name" HeaderText="Name" /> 
      <asp:BoundField DataField="Customer ID" /> 
      <asp:BoundField DataField="Card ID" HeaderText="Card ID" /> 
      <asp:BoundField DataField="Card Number" HeaderText="Card Number" /> 
      <asp:BoundField DataField="Expiration" HeaderText="Expiration" /> 
      <asp:BoundField DataField="State" HeaderText="State" /> 
     </Columns> 

    </asp:GridView> 

コード:

DataTable dt = new DataTable(); 
dt.Columns.Add("Name", typeof(string)); 
dt.Columns.Add("Customer ID", typeof(string)); 
dt.Columns.Add("Card ID", typeof(string)); 
dt.Columns.Add("Card Number", typeof(string)); 
dt.Columns.Add("Expiration", typeof(string)); 
dt.Columns.Add("State", typeof(string)); 
     for (var i = 0; i < creditCardList.items.Count; i++) 
     { 
      DataRow row1 = dt.NewRow(); 
      row1["Name"] = creditCardList.items[i].first_name + " " + creditCardList.items[i].last_name; 
      row1["Customer ID"] = creditCardList.items[i].external_customer_id; 
      row1["Card ID"] = creditCardList.items[i].id; 
      row1["Card Number"] = creditCardList.items[i].number; 
      row1["Expiration"] = creditCardList.items[i].expire_month + "/" + creditCardList.items[i].expire_year; 
      row1["State"] = creditCardList.items[i].state; 
      dt.Rows.Add(row1); 
     } 
     gvCards.DataSource = dt; 
     gvCards.DataBind(); 

出力: Selの名刺IDカード番号の有効期限州名顧客IDカードIDカード番号の有効期限州 スティーブ・リケッツ%の40LDNのCONカード-3F3 xxxxxxxxxxx1000 3/2020 ok Steve Ricketts%40LDN CONカード-3F3 xxxxxxxxxxx1000 3/2020 ok

+0

私はaspを知りませんが、列を自動生成するオプションがありますか?はいの場合は、それを無効にしてください – Mafii

答えて

1

セットAutoGenerateColumns="false"

<asp:GridView ID="MyGrid" runat="server" AutoGenerateColumns="false"> 
    <Columns> 
    </Columns> 
</asp:GridView> 

備考
AutoGenerateColumnsプロパティがtrueに設定されている場合、AutoGeneratedFieldオブジェクトは自動的にデータソース内の各フィールドのために作成されます。各フィールドは、フィールドがデータソースに表示される順序で、GridViewコントロールの列として表示されます。このオプションは、データソース内のすべてのフィールドを表示する便利な方法を提供します。ただし、自動的に生成される列フィールドがどのように表示されるか、または動作するかについては、制御が制限されています。
GridViewコントロールで列フィールドを自動的に生成させる代わりに、AutoGenerateColumnsプロパティをfalseに設定してカスタム列コレクションを作成することで列フィールドを手動で定義できます。バインドされた列フィールドに加えて、独自のカスタム定義テンプレートに基づいて、ボタン列フィールド、チェックボックス列フィールド、コマンドフィールド、ハイパーリンク列フィールド、イメージフィールド、または列フィールドを表示することもできます。

+0

はい...私はそれでした。今正常に見えます。 – Velocedge

+0

問題が解決した場合は、答えをマークしてください。だから、他の人はこの質問の答えをもう投稿しません。 – mmushtaq

関連する問題