新手求教原始数据处理后再显示的问题.

时间:2022-10-24 09:05:40
很多DataGrid, DataList, Repeater的示例都是原始数据直接DataBind(),
请问如果数据比较复杂,如何做相应处理再显示?谢谢!

比如我的一个表如下:

类型      内容
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>";
}
}

#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>";
}
}

#2



to gOODiDEA: 多谢回复

请其他朋友也给些意见,谢谢. up.

#3


请参考http://expert.csdn.net/Expert/topic/1721/1721148.xml?temp=.4691278