Hyperlink Reference to another column DevExpress Gridview ASP.Net Webform

孤人 提交于 2019-12-12 03:38:25

问题


I'm using a for loop to add columns to the DevExpress ASP.Net WebForms GridView using VB.Net. I was able to get a hyperlink to reference the same column value:

Dim newColumn As New DevExpress.Web.GridViewDataHyperLinkColumn
newColumn.PropertiesHyperLinkEdit.NavigateUrlFormatString = "TrendView.aspx?CurrentID={0}"

I need to programmatically set the hyperlink to another column's value... i.e. column three needs to have a hyperlink that references the column 1 value in the same row. How do you access another column in that row using VB or C# during runtime?


回答1:


please refer this url to solve your problem

https://www.devexpress.com/Support/Center/Example/Details/E308

change your populate grid logic as

ASPX :

<dx:ASPxGridView ID="ASPxGridView1" runat="server"></dx:ASPxGridView>

CS

protected void Page_Init(object sender, EventArgs e)
{
     ASPxGridView1.KeyFieldName = "ID";
     ASPxGridView1.DataSource = GetData();
     if (!IsPostBack && !IsCallback)
     {
         PopulateColumns();
         ASPxGridView1.DataBind();
     }
}

public DataTable GetData()
{
    DataTable Table = new DataTable();
    Table.Columns.Add("ID", typeof(int));
    Table.Columns.Add("ItemName", typeof(string));
    Table.Columns.Add("ItemValue", typeof(string));
    Table.Rows.Add(1, "A","AA");
    Table.Rows.Add(2, "B","BB");
    return Table;
}

public void PopulateColumns()
{
    GridViewDataTextColumn colID = new GridViewDataTextColumn();
    colID.FieldName = "ID";
    ASPxGridView1.Columns.Add(colID);

    GridViewDataTextColumn srk = new GridViewDataTextColumn();
    srk.FieldName = "ItemValue";
    ASPxGridView1.Columns.Add(srk);

    GridViewDataHyperLinkColumn colItemName = new GridViewDataHyperLinkColumn();
    colItemName.FieldName = "ItemValue";
    colItemName.PropertiesHyperLinkEdit.NavigateUrlFormatString = "~/details.aspx?Device={0}";
    colItemName.PropertiesHyperLinkEdit.TextFormatString = "{0}";
    colItemName.PropertiesHyperLinkEdit.TextField = "ItemName";
    ASPxGridView1.Columns.Add(colItemName);
}

here column itemName refer to itemValue as url string params




回答2:


If you want to show hyperlink text based on multiple columns then HyperlinkColumn is not the right approach to implement. It would be better use templates.

You should create DataItemTemplate for the column and there you can use Bind statement to format the display text or Hyperlink url as you want. It is the same approach used in ASP.NET GridView control and work in similar manner with ASPxGridView control.

I suggest you to go through these example and attached sample projects will help you know about the implementation.

ASPxGridView - How to customize HyperLink column
How to use a hyperlink whose argument depends on several cell values in the ASPxGridView How to customize navigate URL for HyperLink column within a ASPxGridView - This contains sample attached in the answer.

Example: DataItemTemplate for column.

            <dxwgv:GridViewDataTextColumn FieldName="ContactName" VisibleIndex="3">
                <DataItemTemplate>
                    <dxe:ASPxComboBox ID="ASPxComboBox1" runat="server" ValueType="System.String" DataSourceID="AccessDataSource1"
                        TextField="ContactName" ValueField="ContactName" Value='<%#Bind("ContactName")%>' OnSelectedIndexChanged="ASPxComboBox1_SelectedIndexChanged">
                        <ClientSideEvents SelectedIndexChanged="onSelectedIndexChanged" />
                    </dxe:ASPxComboBox>
                </DataItemTemplate>
            </dxwgv:GridViewDataTextColumn>

or

<dx:ASPxHyperLink ID="ASPxHyperLink3" runat="server"
    NavigateUrl='<%# string.Format("~/AccountDetail.aspx?CategoryID={0}", Eval("i_Customer")) %>'
    Text='<%# string.Format("i_Customer{0}", Eval("i_Customer")) %>' .../>

ASPxGridView - ASPxHyperLink Navigate URL formatting
ASPxGridView - How to set GridViewDataHyperlinkColumn's text and navigate url



来源:https://stackoverflow.com/questions/38234825/hyperlink-reference-to-another-column-devexpress-gridview-asp-net-webform

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!