asp.net小技巧[论坛汇总]

转载自 [http://user.qzone.qq.com/51566219]

1、DataGrid和GridView中对表头设定背景图片
C# code
在某些情况下,DataGrid或者GridView的默认样式并不能满足日益高涨的用户的要求,很多人追求美观的样式。对表头设定背景也是其中的一个方面,那么有什么好的方法可以达到这一要求呢,我的方法如下:

DataGrid:

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
    if(e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Header)
    {
        e.Item.Attributes.Add("style", "background-image:url('background.gif')");
    }
}
GridView:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        e.Row.Attributes.Add("style", "background-image:url('background.gif')");
    }
}
2、在DataGrid和GridView中对表头设定背景图片,不需要后台代码。
HTML code

                AutoGenerateColumns="false" Visible="true" ShowFooter="false">
                

CSS code
.grid-head {
    font-size: 14px;
    font-weight: normal;
    color: #FFFFFF;
    background-image: url(../images/grid-bg.gif);
    text-align:center;
    vertical-align:middle;
    height: 28px;
}


3、假设这样一种模型,显示用GridView,数据源用DataSet。每次获取10条信息,按每页10条分页。
有的时候数据可能不足10条,而客户要求不足10条显示为空行,以下代码解决了这个问题。
C# code
private DataTable FillBlank(int pageSize, DataTable dt)
        {
            if (dt.Rows.Count < pageSize)
            {
                for (int i = dt.Rows.Count - 1; i < pageSize; i++)
                {
                    DataRow dr = dt.NewRow();
                    dt.Rows.Add(dr);
                }
            }
            return dt;
        }

private void BindGrid(DataTable dt)
{
        GridView.DataSource = dt;
        GridView.DataBind();
}

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="20_解决刷新后回到顶部的问题.aspx.cs" Inherits="_20_解决刷新后回到顶部的问题" MaintainScrollPositi %>

4、ENTER键可以让光标移到下一个输入框关于WEB页的局部打印问题:
JScript code

----------------------------------------


--------------------------------------------
内容用

装起来,并把DIV设置ID

your GridView

------------------------------------





5、ENTER键可以让光标移到下一个输入框
HTML code

6、GridView产生纵向横向的滚动条。这样就不会吧页面撑打了。
CSS code

    
    


HTML code


Gridview 在这里

7、把DataTable里的内容导出到EXCEL,执行代码就行,什么都不用改,什么都不用设置
Private   Sub   toExcel(ByVal   tb   As   DataTable)
                Dim   dgrid   As   System.Web.UI.WebControls.DataGrid   =   Nothing
                Dim   context   As   System.Web.HttpContext   =   System.Web.HttpContext.Current
                Dim   strOur   As   System.IO.StringWriter   =   Nothing
                Dim   htmlWriter   As   System.Web.UI.HtmlTextWriter   =   Nothing
                If   Not   IsNothing(tb)   Then
                        context.Response.ContentType   =   "application/vnd.ms-excel "
                        context.Response.ContentEncoding   =   System.Text.Encoding.UTF8
                        context.Response.Charset   =   " "
                        strOur   =   New   IO.StringWriter
                        htmlWriter   =   New   System.Web.UI.HtmlTextWriter(strOur)
                        dgrid   =   New   DataGrid
                        dgrid.DataSource   =   tb.DefaultView
                        dgrid.AllowPaging   =   False
                        dgrid.DataBind()
                        dgrid.RenderControl(htmlWriter)
                        context.Response.Write(strOur.ToString)
                        context.Response.End()
                End   If
        End   Sub

8、asp.net(c#) GridView实现鼠标悬停高亮显示

今天看到论坛有人问这样的问题,上百度搜索了一下,发现对于这种基本都使用girdview中的RowDataBound事件完成,下面看看网上提供的简单方法:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff';");
        e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor;");
    }
}

 

你可能感兴趣的:(asp.net,asp.net,datagrid,webbrowser,object,dataset,c#)