请问如果数据比较复杂,如何做相应处理再显示?谢谢!
比如我的一个表如下:
类型 内容
1 A Question
2 http://www.csdn.net
3 Test.jpg
4 1*2*3*4
5 <configuration><system.web><customErrors mode="Off"/></system.web></configuration>
需要先做处理再显示
switch (dataType)
{
case 1 :
// 普通文本,直接显示
...
break;
case 2 :
// 超链,转为<a href="http://www.csdn.net">CSDN</a>
...
break;
case 3 :
// 图片,转为<img src="...">
...
break;
case 4 :
// 星号分隔的数组, 转为
/*
<table>
<tr>
<td> 1 </td>
</tr>
<tr>
<td> 2 </td>
</tr>
<tr>
<td> 3 </td>
</tr>
<tr>
<td> 4 </td>
</tr>
</table>
*/
...
break;
case 5 :
// XML数据, 调用对应的XSLT转换HTML
...
break;
}
如果要实现如上功能,是否需要遍历数据,生成新的DataTable再Bind还是其他什么方法?
烦请给出C#示例代码,最好是CODEBEHIND的,多谢.
3 个解决方案
#1
你这种也可以直接绑定的,要不然在Itembound里修改
//假设第一列为超级链接列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string ID = "123";
string Name = "user";
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
e.Item.Cells[0].Text = "<a href=" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).NavigateUrl + "&ID=" + ID + "&Name=" + Name + ">" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).Text + "</a>";
}
}
//假设第一列为超级链接列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string ID = "123";
string Name = "user";
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
e.Item.Cells[0].Text = "<a href=" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).NavigateUrl + "&ID=" + ID + "&Name=" + Name + ">" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).Text + "</a>";
}
}
#2
to gOODiDEA: 多谢回复
请其他朋友也给些意见,谢谢. up.
#3
请参考http://expert.csdn.net/Expert/topic/1721/1721148.xml?temp=.4691278
#1
你这种也可以直接绑定的,要不然在Itembound里修改
//假设第一列为超级链接列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string ID = "123";
string Name = "user";
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
e.Item.Cells[0].Text = "<a href=" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).NavigateUrl + "&ID=" + ID + "&Name=" + Name + ">" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).Text + "</a>";
}
}
//假设第一列为超级链接列
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string ID = "123";
string Name = "user";
if ( ( e.Item.ItemType != ListItemType.Header ) && ( e.Item.ItemType != ListItemType.Footer ) )
{
e.Item.Cells[0].Text = "<a href=" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).NavigateUrl + "&ID=" + ID + "&Name=" + Name + ">" + ( ( HyperLink ) e.Item.Cells[0].Controls[0] ).Text + "</a>";
}
}
#2
to gOODiDEA: 多谢回复
请其他朋友也给些意见,谢谢. up.
#3
请参考http://expert.csdn.net/Expert/topic/1721/1721148.xml?temp=.4691278