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) + "...";
}
}