我有一个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>
答案 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