2012-02-19 103 views
0

コードビハインド内のGridViewにいくつかの列が追加されています。実際の.aspxページにはリンクフィールドがあります。これはうまくいきますが、リンクフィールドが最初の列として表示されていて、最後の列として表示することをお勧めします(右端まで)。ASP.net:GridViewの列の順序を変更する

リンクフィールドが右側になるように注文を指定する方法はありますか?私はASP.NET 4.0を使用しています。ここで

は私の分離コードです:任意の助け

<asp:GridView id="GridView3" runat="server" AutoGenerateColumns="False" 
EmptyDataText="There are no data records to display." 
    AllowPaging="True" 
    CssClass="GridViewStyle" GridLines="None" Width="100%"> 
<Columns> 


          <asp:HyperLinkField DataNavigateUrlFields="EmplID" 
           DataNavigateUrlFormatString="EmployeeProfile.aspx?EmplID={0}" 
           DataTextField="EmplID" 
           DataTextFormatString= "<img src='Images/icons/document-search-result.png' alt='View'/> <u>View</u>" > 
           <ControlStyle CssClass="titleLinksB" /> 
          <ItemStyle Wrap="False" /> 
          </asp:HyperLinkField> 

</Columns> 

</asp:GridView> 

ありがとう:

Private Sub loadDynamicGrid() 

    Dim connetionString As String 
    Dim connection As SqlConnection 
    Dim command As SqlCommand 
    Dim adapter As New SqlDataAdapter 
    Dim ds As New DataSet 
    Dim sql As String 

    Dim lastName As String 
    Dim linkText As String 

    lastName = Request.QueryString("lastName") 

    connetionString = ConfigurationManager.ConnectionStrings("dbConnectionString").ConnectionString.ToString() 
    sql = "SELECT * FROM [EmployeeList] Where [lastname] like '" & lastName & "%' order by lastname" 

    connection = New SqlConnection(connetionString) 



    Try 
     connection.Open() 
     command = New SqlCommand(sql, connection) 
     adapter.SelectCommand = command 
     adapter.Fill(ds) 

     'GridView3.Columns.Clear() 

     'Build Bound Columns 
     Dim curLastName As New BoundField 
     curLastName.HeaderText = "Last Name" 
     curLastName.DataField = "LastName" 
     GridView3.Columns.Add(curLastName) 



     Dim curFirstName As New BoundField 
     curFirstName.HeaderText = "First Name" 
     curFirstName.DataField = "FirstName" 
     GridView3.Columns.Add(curFirstName) 


     GridView3.Visible = True 
     GridView3.DataSource = ds 
     GridView3.DataBind() 

     adapter.Dispose() 
     command.Dispose() 
     connection.Close() 



    Catch ex As Exception 
     MsgBox("Can not open connection ! ") 
    End Try 



End Sub 

そしてここでは、GridViewのコードです!

+0

SQLインジェクション用に開いており、SqlCommandにSqlParametersを使用してください。 –

答えて

0

GridView3.Columns.Insertの代わりAddを使用してみてください。例:

GridView3.Columns.Insert(0, curLastName) 

このようにして、動的に作成された列が最初に追加され、その後に宣言的に追加された列が追加されます。

+0

まさに私が必要なもの!どうもありがとう – Cineno28

0

この方法で試してみることができます。コードの背後では、bouldがfeildsの行を削除できます。

<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" EmptyDataText="There are no data records to display." 
     AllowPaging="True" CssClass="GridViewStyle" GridLines="None" Width="100%"> 
     <Columns> 
      <asp:BoundField HeaderText="Last Name" DataField="LastName"/> 
      <asp:BoundField HeaderText="First Name" DataField="FirstName"/> 
      <asp:HyperLinkField DataNavigateUrlFields="EmplID" DataNavigateUrlFormatString="EmployeeProfile.aspx?EmplID={0}" 
       DataTextField="EmplID" DataTextFormatString="<img src='Images/icons/document-search-result.png' alt='View'/> <u>View</u>"> 
       <ControlStyle CssClass="titleLinksB" /> 
       <ItemStyle Wrap="False" /> 
      </asp:HyperLinkField> 
     </Columns> 
    </asp:GridView> 
+0

ありがとうございますが、後で列を選択すると、あらかじめそれらを知ることができないため、コードビハインドから完全に追加する必要があります。 – Cineno28

関連する問題