2013-02-11 35 views
3

我有一個網格,它被綁定在後面的代碼中,我也想在其中顯示模板字段。如何更改GridView中使用Asp.Net的列的順序C#

我在DataTable中爲網格視圖生成3列,模板字段爲TextBox控件。

我的用於結合數據是代碼..

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 


public partial class gr4 : System.Web.UI.Page 
{ 
    SqlConnection cn; 
    SqlCommand cmd; 
    SqlDataAdapter da; 
    DataSet ds; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    cn = new SqlConnection("Data Source=AMIR-PC\\MOHEMMAD;Initial Catalog=CRM_InvestPlus;Integrated Security=True"); 
    string query = "Select Capacity from Dealer_License_Capacity where ID='D00001' and Software_ID='001' and Version_ID='1'"; 
    cn.Open(); 
    cmd = new SqlCommand(query,cn); 
    da = new SqlDataAdapter(cmd); 
    ds = new DataSet(); 
    da.Fill(ds); 
    cn.Close(); 

    DataTable dt = new DataTable(); 
    dt.Columns.Add("Name", typeof(string)); 
    dt.Columns.Add("Software_Name", typeof(string)); 
    dt.Columns.Add("Version_Name", typeof(string)); 

    int count = Convert.ToInt32(ds.Tables[0].Rows[0][0].ToString()); 

    for (int i = 0; i < count; i++) 
    { 
     DataRow dr = dt.NewRow(); 
     dr["Name"] = "aaa"; 
     dr["Software_Name"] = "bbb"; 
     dr["Version_Name"] = "ccc"; 

     dt.Rows.Add(dr); 
    } 

    GridView1.DataSource = dt; 
    GridView1.DataBind(); 
    } 
} 

爲網格視圖我的源代碼是:

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 

     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 

    </Columns> 
    </asp:GridView> 

</div> 
</form> 

網格顯示模板字段作爲第一列,但我想顯示模板字段作爲輸出中的最後一列。我可以在這個網格中添加更多的模板字段.. ??

請幫助..

在此先感謝

+0

根據容量應該生成網格視圖中的行。這就是爲什麼使用計數變量.. :-) @cha – 2013-02-11 06:21:05

+0

我只關心gridview的顯示順序.. :-) – 2013-02-11 06:24:58

+1

爲什麼你不使用綁定字段與自動生成列爲false? – 2013-02-11 06:26:35

回答

2

您可以使用綁定字段,如下面

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" > /*changed to false*/ 
    <Columns> 
     <asp:BoundField HeaderText="Name" 
      DataField="Name"/> 
     <asp:BoundField HeaderText="SoftwareName" 
      DataField="Software_Name"/> 
     <asp:BoundField HeaderText="VersionName" 
      DataField="Version_Name"/> 

     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

,只要你喜歡你可以改變順序。

-2

如果一切準備就緒的數據是有數據庫和列有在網格視圖的列名相同的方式是名字裏有顯示的名字是爲了怎麼我沒有得到

我的網格代碼是這樣的一個,但不是明智的訂單

+1

你的答案是不可理解的。我不確定它是否試圖回答這個問題。嘗試提供一些代碼。 – Peopleware 2013-04-05 11:09:57