C# 基础设施超网格中的超链接单元
我有一个C# 基础设施超网格中的超链接单元,c#,winforms,infragistics,ultrawingrid,C#,Winforms,Infragistics,Ultrawingrid,我有一个UltraGrid,它绑定到一个带有两列(键、值)的DataTable。我在DataTable中添加了10行,现在第11行的值列中有一个URL。URL值添加得很好,但它不像超链接那样工作。要使其作为超链接工作,我需要如何将此行添加到UltraGrid中? 我的代码: DataTable dt=newdatatable(); 添加(“键”,类型(字符串)); 添加(“值”,类型(字符串)); ultraGrid.DataSource=dt; foreach(字典中的KeyValuePair
UltraGrid
,它绑定到一个带有两列(键、值)的DataTable
。我在DataTable中添加了10行,现在第11行的值列中有一个URL。URL值添加得很好,但它不像超链接那样工作。要使其作为超链接工作,我需要如何将此行添加到UltraGrid中?
我的代码:
DataTable dt=newdatatable();
添加(“键”,类型(字符串));
添加(“值”,类型(字符串));
ultraGrid.DataSource=dt;
foreach(字典中的KeyValuePair kvp)
{
dt.Rows.Add(kvp.Key,kvp.Value);
}
//添加具有URL值的行。
字符串url=“SomeURL”;
Uri hyperLink=新Uri(url);
添加(“单击此”,超链接);
定义网格列时,使用类型:Infragistics.Win.UltraWinGrid.ColumnStyle.URL
作为列类型
然后网格将在您的代码中引发一个
CellLinkClicked
事件。当您定义网格列时,使用类型:Infragistics.Win.UltraWinGrid.ColumnStyle.URL
作为列类型
然后,网格将在您的代码中引发一个
CellLinkClicked
事件。而U1199880给出的答案指向一个部分正确的解决方案,将该样式应用于整个列时出现问题。列中的每个单元格都将被视为链接
相反,您需要截获InitializeRow
事件,并检查当前行的当前单元格是否是有效的URI。然后将“单元格样式”属性更改为ColumnStyle.URL
private void grd_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (e.ReInitialize == false)
{
UltraGridColumn c = e.Row.Band.Columns["Value"];
string link = e.Row.GetCellValue(c).ToString();
if (Uri.IsWellFormedUriString(link, UriKind.Absolute))
e.Row.Cells["Value"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.URL;
}
}
虽然U1199880给出的答案指出了部分正确的解决方案,但将该样式应用于整个列时存在问题。列中的每个单元格都将被视为链接 相反,您需要截获
InitializeRow
事件,并检查当前行的当前单元格是否是有效的URI。然后将“单元格样式”属性更改为ColumnStyle.URL
private void grd_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (e.ReInitialize == false)
{
UltraGridColumn c = e.Row.Band.Columns["Value"];
string link = e.Row.GetCellValue(c).ToString();
if (Uri.IsWellFormedUriString(link, UriKind.Absolute))
e.Row.Cells["Value"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.URL;
}
}
这将更改列中的每个单元格,而不仅仅是最后一个。您可以设置单元格的样式:链接被@alhalama打断,注释被@alhalama打断。基本上你可以做
cell.Style=ColumnStyle.URL
。这是到的链接,希望不会很快断开。(Infragistics需要修复他们的文档,yeeesh!)我找不到任何CellLinkClicked
事件的引用。您可以使用ClickCell事件,因为您正在将单元格设置为超链接:这将更改列中的每个单元格,而不仅仅是最后一个。您可以设置单元格的样式:链接被@alhalama打断注释。基本上你可以做cell.Style=ColumnStyle.URL
。这是到的链接,希望不会很快断开。(Infragistics需要修复他们的文档,yeeesh!)我找不到任何CellLinkClicked
事件的引用。您可以使用ClickCell事件,因为您正在将单元格设置为超链接: