2016-07-27 32 views
0

我想用RadioButton和CreditCardList中的數據填充GridView。然而,它將每個字段的列數加倍......一組完整的列然後是另一個完整的集合(沒有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卡身份證號碼到期州 史蒂夫裏基茨%40LDN CON CARD -3F3 xxxxxxxxxxx1000 3/2020 ok Steve Ricketts%40LDN CON CARD-3F3 xxxxxxxxxxx1000 3/2020 ok

+0

我不知道asp,但有沒有選擇自動生成列?如果是的話,只需要禁用它 – Mafii

回答

1

set AutoGenerateColumns="false"

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

備註
的AutoGenerateColumns屬性被設置爲真,在數據源中的每個字段被自動創建的AutoGeneratedField對象。然後每個字段按照字段出現在數據源中的順序顯示爲GridView控件中的一列。該選項提供了顯示數據源中每個字段的便捷方式;但是,您對自動生成的列字段的顯示方式或行爲方式的控制有限。
您可以通過將AutoGenerateColumns屬性設置爲false然後創建自定義Columns集合來手動定義列字段,而不是讓GridView控件自動生成列字段。除了綁定列字段之外,還可以根據您自己的自定義模板顯示按鈕列字段,複選框列字段,命令字段,超鏈接列字段,圖像字段或列字段。

+0

是的......就是這樣。現在看起來正常。 – Velocedge

+0

如果它解決了你的問題,那麼請標記它的答案。所以其他人不會再發布這個問題的答案。 – mmushtaq

相關問題