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
<asp:GridView runat="server" ID="gvStatList" AllowPaging="false" Width="100%" CssClass="grid"

                AutoGenerateColumns="false" Visible="true" ShowFooter="false">
                <HeaderStyle CssClass="grid-head" />
</asp:GridView>
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

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

<script language="javascript">
<!--
function PrintNote()
{
var PrintWin=window.open('about:blank','Print');
PrintWin.document.write('<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>' + document.all("PrintContent").innerHTML);
PrintWin.document.all.WebBrowser.ExecWB(7,1);
PrintWin.close();
}
-->
</script>
--------------------------------------------
内容用<div>装起来,并把DIV设置ID
<div id="PrintContent" align="center">
your GridView
</div>
------------------------------------
<input  type="button" value="打印" id="Button2"  runat="server"/>




5、ENTER键可以让光标移到下一个输入框
HTML code
<input   οnkeydοwn= "if(event.keyCode==13)event.keyCode=9 ">
6、GridView产生纵向横向的滚动条。这样就不会吧页面撑打了。
CSS code

    <style type="text/css"  id="print" media="print">

        #leftSide, #footerSide {
            display:none;
        }
    </style>
    <style type="text/css" >
.Freezing
   {

   position:relative ;
   table-layout:fixed;

   top:expression(this.offsetParent.scrollTop);  
   z-index: 10;

   }

.Freezing th{text-overflow:ellipsis;overflow:hidden;white-space: nowrap;padding:2px;}

    </style>


HTML code

<div  id="Div1"  style="overflow: scroll; height: 140px;width:638px" >
Gridview 在这里
</div>
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;");
    }
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值