1。我想在DataView 中的第一列显示行号,例如从数据库读出10条数据,那么每一行的第一列都显示这行的行号。不知道怎么实现。2。我在数据库中存了一个数据,用0或1表示。怎样才能在DataView显示之前将0转换为“已读”,将1转换为“未读”。在dataview中显示已读或未度,而不是0或1。希望大家多多指点

解决方案 »

  1.   

    dataview是数据集,不建议改变里面的内容,而是在显示在ui控件中时转换.
      

  2.   

    如果显示在datalist中<%#((DataListItem)Container).ItemIndex+1%><%#DataBinder.Eval(Container.DataItem,"field").ToString() == "1"?"已读":"未读"%>
      

  3.   

    我的解决办法是,在DataView绑定数据以前,给数据源的DataTable加列,同时根据要求添加值,DataView 列绑定的字段名用新加的列名,这样就可以了。
      

  4.   

    可以修改DataSet 中的Table中的值吗?应该使用什么样的语句?
      

  5.   

    我看了一下MSDN里的视频教程,找到了一个解决办法。
    是在DataView里建一个ItemTemplate,绑定一个函数 <asp:TemplateField HeaderText="是否已读" >
         <ItemTemplate>
            <%# read( Convert.ToInt32(Eval("IsProcessed"))) %>
         </ItemTemplate>
     </asp:TemplateField><script runat = server>
        public string read(int i)
        {
            if (i == 0)
                return "未读";
            else 
                return "已读";
        }
    </script>
      

  6.   

    1.DataTable tmp = GetDataTable(strSQL);
    tmp.Columns.Add("SEQ");
    for(int i = 0; i < tmp.Rows.Count ; i++)
    {
       tmp.Rows[i]["SEQ"] = (i+1).ToString();
    }
    tmp.AcceptChanges();
    2.如果是ORACLE数据库,直接查询的时候使用select decode(filed,'0','已读','1','未读')
     如果是SQL SERVER,直接查询的时候使用select case filed when '0' then '已读' when '1' then '未读' end 即可。
    其中,filed是字段名
      

  7.   

    我前面打错了,应该是GridView,不是DataView.
      

  8.   

    第一个问题我在百度上也搜到了一个答案,和大家分享一下<ItemTemplate>
         <asp:Label ID="Label1" runat="server">
             <%# Container.DataItemIndex + 1%>
         </asp:Label>
    </ItemTemplate>