Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Asp.NETC更改GridView中列的顺序_C#_Asp.net - Fatal编程技术网

C# 如何使用Asp.NETC更改GridView中列的顺序

C# 如何使用Asp.NETC更改GridView中列的顺序,c#,asp.net,C#,Asp.net,我有一个网格,它被绑定在代码后面,我想在其中显示模板字段 <asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextB

我有一个网格,它被绑定在代码后面,我想在其中显示模板字段

    <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>
我在DataTable中为grid视图生成了3列,模板字段是TextBox控件

    <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>
我绑定数据的代码是

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>
我的grid view源代码是:

    <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>
网格显示模板字段作为第一列,但我希望将模板字段显示为输出中的最后一列。我可以在此网格中添加更多模板字段吗

    <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>
请帮忙

    <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>

提前感谢

您可以使用以下绑定字段

    <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>
  <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>

您可以根据需要更改顺序。

如果数据库中有所有准备就绪的数据,并且列在网格视图中以相同的方式存在,则列名是名称,必须显示名称是顺序我如何不获取

    <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>

我的网格代码是这个,但不是按照网格视图中应生成的行的容量来排序的。这就是使用count变量的原因@我只关心gridview的显示顺序-为什么不将自动生成列的绑定字段设置为false?如何实现??我不知道@krshekhar@RiyazKalva我已经补充了答案。你的答案真的不可理解。我不确定它是否试图回答这个问题。尝试提供一些代码。
    <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>