修改asp网格中的列以显示超链接和支持组

时间:2012-07-31 16:21:54

标签: c# asp.net devexpress

我有一个devexpress gridview,它在一列中显示UserID。 我按此列分组,我想通过添加指向用户个人资料页面的超链接来修改显示的值。

<dx:ASPxGridView ..>

<Columns>
..

<dx:GridViewDataColumn FieldName="UserID" Caption="User" VisibleIndex="2" 
  Visible="false">
  <Settings AllowSort="False" AllowDragDrop="False" />                                
</dx:GridViewDataColumn>

..
</Columns>

</dx:ASPxGridView>

但每当我尝试添加DataItemTemplate时,它根本不会影响输出。

如何修改链接显示的内容?

现在它显示:

User 12323

我想要显示:

User <a href="/profile.aspx?userid=12323">12323</a>

2 个答案:

答案 0 :(得分:1)

此代码将12323显示为超链接,该超链接将作为ID并重定向到您想要的页面。

       <dx:GridViewDataHyperLinkColumn VisibleIndex="0" Settings-FilterMode="DisplayText" Caption="User" 
                ShowInCustomizationForm="True"
             FieldName="UserID" Width="58px">
            <DataItemTemplate>
              <dx:ASPxHyperLink Font-Size="11px" ForeColor="Blue" ID="ASPxHyperLinkTest" Target="_blank" runat="server" Text='<%#Eval("UserID") %>'
 NavigateUrl='<%#string.Format("profile.aspx?userid={0}",Eval("UserID"))%>'>
        </dx:ASPxHyperLink>
      </DataItemTemplate>
    </dx:GridViewDataHyperLinkColumn>

答案 1 :(得分:0)

之前我没有使用过DevExpress Gridview,但是如果它继承自GridView,那么这可能有效:

Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Cells(0).Text = "User <a href=""/profile.aspx?userid=" & DataBinder.Eval(e.Row.DataItem, "UserID") & """>" + DataBinder.Eval(e.Row.DataItem, "UserID") + "</a>"
        End If

End Sub