AspxGridView学习日记--动态添加超链接列

AspxGridView学习日记--动态添加超链接列       
        分类:            ASP.NETC# 4953人阅读 评论(4) 收藏 举报

因为刚使用Developer Express .NET 不是很熟悉AspxGridView控件,组长要动态混合生成普通列&超链接列  困扰了我好长时间的问题今天终于解决了 一边看着金山词霸,一边看着国外的网页很吃力不过解决问题的时候很爽。一边想办法一边自己解决 下面是解决方法 希望大家指教

ASPxGridView1.BeginUpdate();        

ASPxGridView1.Columns.Clear();//清空列       

ASPxGridView1.AutoGenerateColumns = true;        

ASPxGridView1.DataSourceID = ObjectDataSource2.ID;//获得数据源       

ASPxGridView1.DataBind();  //绑定数据       

ASPxGridView1.Columns["nodeid"].Visible = false;//nodeid列不显示

int columnCount = ASPxGridView1.Columns.Count;//获取列的数量       

ArrayList columnList = new ArrayList(); //生成超链接列的集合       

ArrayList columnList1 = new ArrayList();//生成普通列的集合       

 for (int i = 2; i < columnCount-1; i++)//循环转换超链接列       

 {            

GridViewDataHyperLinkColumn resultCol = new GridViewDataHyperLinkColumn();  //NEW ige超链接列           

resultCol.Caption = ((GridViewEditDataColumn)ASPxGridView1.Columns[i]).FieldName;  //列标题           

resultCol.FieldName = ((GridViewEditDataColumn)ASPxGridView1.Columns[i]).FieldName;            

object[] args = new object[]

 { ((GridViewEditDataColumn)ASPxGridView1.Columns[i]).FieldName,DropDownList1.SelectedIndex };    //resultCol.PropertiesHyperLinkEdit.NullDisplayText = "1123";           

resultCol.PropertiesHyperLinkEdit.NavigateUrlFormatString = string.Format("javascript:OnClick=OnMoreInfoClick(this,'{0}',{1})",args);//生成超链接           

columnList.Add(resultCol);//添加到集合内       

}         //保存 普通列      

columnList1.Add(ASPxGridView1.Columns[1]);        

columnList1.Add(ASPxGridView1.Columns[ASPxGridView1.Columns.Count - 1]);      

ASPxGridView1.AutoGenerateColumns = false;

//for (int x = columnCount - 1; x > 1; x--)        

//{        

//    ASPxGridView1.Columns.Remove(ASPxGridView1.Columns[x]);        

//}         //清空所有列       

ASPxGridView1.Columns.Clear();         //添加 关别列       

ASPxGridView1.Columns.Add((GridViewColumn)columnList1[0]);       //添加 超链接列       

for (int j = 0; j < columnList.Count; j++)        

{           ASPxGridView1.Columns.Add((GridViewDataHyperLinkColumn)columnList[j]);                      }        

//ASPxGridView1.EndUpdate();        

//ASPxGridView1.BeginUpdate();         //添加 汇总列       

ASPxGridView1.Columns.Add((GridViewEditDataColumn)columnList1[1]);        

//ASPxGridView1.DataBind();        

ASPxGridView1.EndUpdate();    

}

有一个问题 不知道为什么 混合生成列的时候 普通的文本列总是全部到前面去 而超链接列总是到后面 如果有知道的请回复在下感激不尽

PS 下面的是DX官方给的解决方案

protected void ASPxGridView1_Init(Object sender, EventArgs e)

{

    GridViewDataHyperLinkColumn colLink = new GridViewDataHyperLinkColumn();

    colLink.Caption = "Edition";

    colLink.FieldName = "Id";      //Column parameter, "Id" is URL link ("<a href="3">Edit</a> ")

    colLink.PropertiesHyperLinkEdit.Text = "Edit";      // Display text

    colLink.PropertiesHyperLinkEdit.TextField = "Content";   //Display content of column "Content", alternative to PropertiesHyperLinkEdit.Text

    colLink.PropertiesHyperLinkEdit.ImageUrl = "~/images/edit.gif";   //Display image, alternative to PropertiesHyperLinkEdit.Text

    colLink.PropertiesHyperLinkEdit.NavigateUrlFormatString = "/Default.aspx?={0}");   //The URL is replaced {0} to "Id" to especific Row ("/Default.aspx?=3")

    colLink.Visible = true;

    colLink.Width = 50;

    ASPxGridView1.Columns.Add(colLink);      //Add column to ASPxGrid

}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值