2012-02-19 3 views
0

У меня есть некоторые столбцы, которые добавляются в GridView в codebehind. На фактической странице .aspx у меня есть поле ссылки. Это отлично работает, но поле ссылки отображается как первый столбец, и я бы предпочел, чтобы он отображался как последний (весь путь вправо).ASP.net: Изменение порядка столбцов в GridView

Есть ли способ указать заказ, чтобы поле ссылки было справа? Я использую ASP.NET 4.0.

Вот мой отделенный код:

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 код:

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

Спасибо за любую помощь!

+0

Вы открыты для SQL-инъекций, используйте SqlParameters для вашего SqlCommand. –

ответ

0

Попробуйте использовать GridView3.Columns.Insert вместо Add. Например:

GridView3.Columns.Insert(0, curLastName) 

На этом пути сначала добавляются динамически создаваемые столбцы и декларативно добавленные столбцы.

+0

То, что мне нужно! большое спасибо – Cineno28

0

Вы можете попробовать этот путь, в коде позади, вы можете удалить bould control feilds lines.

<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

Смежные вопросы