gridview 动态绑定HyperLinkField 请高手赐教急!!
问题描述:我想在GRIDVIEW里动态绑定列,列表头及绑定数据库字段存在HASHTABL里面,其中有一超连接字段,单击超连接,进入新页面B,同时把所单击列的值传入新页面B.
代码如下:
/// <summary>
/// 作者:SARA
/// 日期:2009-11-10
/// 描述:设置GrivdView显示样式
/// </summary>
/// <param name="gridview1">GrivdView对象</param>
/// <returns name="fieldsname">GV列表头集合</returns>
/// <returns name="tablename">表名</returns>
public void GetGridViewStyle(ref GridView gridview1, Hashtable fieldsname, String tablename)
{
//获取hashtable迭代接口
IDictionaryEnumerator de = fieldsname.GetEnumerator();
gridview1.AutoGenerateColumns = false;
gridview1.DataKeyNames = new string[] { "CompanyName" };
DataTable companyinfo = new DataTable();
Entity.CompanyInfo c = new Entity.CompanyInfo();
while (de.MoveNext())
{
if (de.Key.ToString() == "CompanyName")//超连接字段绑定
{
//超连接列
HyperLinkField hy = new HyperLinkField();
hy.HeaderText = de.Value.ToString();
hy.DataTextField = de.Key.ToString();
hy.Target = "_blank";
//传入所单击列的值
hy.NavigateUrl = "~/CompanySigleEdit.aspx?number='{0}'";
hy.NavigateUrl = "~/CompanySigleEdit.aspx";
// hy.NavigateUrl = "<%# ~\"/CompanySigleEdit?id=" + DataBinder.Eval("CompanyName").ToString () + "%>";
// hy.DataTextFormatString = " ~/CompanySigleEdit.aspx?number={0}";
gridview1.Columns.Add(hy);
}
else if (de.Key.ToString() == "BirthDay" || de.Key.ToString() == "TeBieDay") //日期字段绑定
{
BoundField bf = new BoundField();
bf.HeaderText = de.Value.ToString();
bf.DataField = de.Key.ToString();
}
else if (de.Key.ToString() == "CompanyMap")
{
BoundField bf = new BoundField();
bf.HeaderImageUrl = "";
bf.HeaderText = de.Value.ToString();
bf.DataField = de.Key.ToString();
gridview1.Columns.Add(bf);
}
}
EntityAction.CompanyInfoAction cia = new EntityAction.CompanyInfoAction();
gridview1.DataSource = cia.GetComapnyInfAll(tablename);//取得表记录
gridview1.DataBind(); //指定数据源
}
补充:.NET技术 , ASP.NET