Tech tips(回发、显示名称、DataView过滤前10条记录)


1、处理水晶报表时,查询条件刷新会引发自动导出数据,所以要根据引起回发的控件,判断是否加载报表数据:
     if ((Page.Request["__EVENTTARGET"] != null)&&(Page.Request["__EVENTTARGET"].StartsWith("ddl") == false ))
                   QueryData();//加载报表数据
            }
2、经常忘记这个:根据ID取Name的显示方式,作个标记:
<asp:TemplateField HeaderText="名称">
                    <HeaderStyle Width="60px" />
                <ItemTemplate>
                <asp:Label Text ='<%# GetSaleNameByID((int)DataBinder.Eval(Container.DataItem, "ID"))%>' runat="server" ID="saleName" ></asp:Label>
               </ItemTemplate>
                </asp:TemplateField>
cs:
 protected  string GetSaleNameByID(int resultID)
    {
       return  tsr.GetSaleNameByID(resultID);
    }
3、DataView取前10条记录的方法:

DataView dv = ds.Tables[0].DefaultView;
            dv.Sort = "ContactTime DESC";
            while (dv.Count >10)
            {
                dv.Delete(dv.Count-1);
            }
            gdvData.DataSource = dv;
            gdvData.DataBind();
4、缩短显示的列,datagrid经常用到的。
if (e.Row.RowType==DataControlRowType.DataRow){
ShortERow(e.Row.Cells[8], 4); //公司地址
}
e.Row.Cells[0].Visible = false; //隐藏ID列

 /// <summary>
    /// 缩短列
    /// </summary>
    /// <param name="cell"></param>
    /// <param name="lengthLong">超过的长度</param>
    protected void ShortERow( TableCell cell,int lengthLong)
    {
        string text = cell.Text.Trim();
        cell.Text = text;

        if (text.Length > lengthLong)
        {
            cell.ToolTip = text;
            cell.Text = text.Substring(0, lengthLong - 2) + "...";
        }
    }

posted on 2008-07-03 10:15  joyous jeny  阅读(711)  评论(0编辑  收藏  举报

导航