20100604 学习记录:Gridview添加滚动条 && 网站消息弹出框 && Page_Unload

如何给GridView添加滚动条 
第一种方法 外面套一层div。缺点:必须写死高度,如果表格长短是动态的就没法用这个办法了。eg:只想限制最多超过500条记录才出现滚动条,而没有数据或只有很少几条记录的时候,表格的高度就只按照记录条数的长短来定...
<div style="overflow-y: scroll; height: 200px">
            <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
              GridLines="Both" CellPadding="4" Width="560">
              <HeaderStyle BackColor="#EDEDED" Height="26px" />
            </asp:GridView>
  </div>
第二种方法 将Gridview放到一个div里面 设置div的style= "overflow:   auto; " ,再加CSS (样式表)  .DataGridFixedHeader   这个木有尝试....
{
  POSITION:   relative   ;  
  TOP:   expression(this.offsetParent.scrollTop);
  BACKGROUND-COLOR:   blue   ;
  height:25px;
  color:#ffffff;
  text-align:center   ;
  vertical-align:middle;
  font-weight:bold;
  font-size:13px;
  background-color:#5D7B9D;
  }
设置Gridview的   HeaderStyle的CSSClass= "DataGridFixedHeader "

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wangjrong/archive/2009/09/15/4553563.aspx

第三种方法 用Panel  偶自创的方法..... =v=

grdview放在一个panel里,因为panel本身也有滚动条的属性,偶只需要在后台判断时机,然后动态更改panel的高度就ok了

 

 <asp:Panel ID="pnlShipTo" runat="server" ScrollBars="Auto" >
     <asp:GridView ID="grdShipTo" ... runat="server"   width="100%" ...

     if  (rowCount  >   17 )
            {
                
this .pnlShipTo.Height  =  Unit.Pixel( 400 );
                
this .grdShipTo.Width  =  Unit.Percentage( 98 );
            }

比较搞笑的是在服务器端修改这些控件的宽高不能直接用int,string就更不行了 = =|||  都会报错说格式不对还是什么的.... 具体错误信息忘记了.... orz
查了一下发现,应该用Unit
如果改为像素,则用 Unit.Pixel(400),如果想改为百分比,则用 Unit.Percentage(98)


GridView也可以用同样类似的方式在后台设置列的宽度和位置

 

如下:gv是gridview的ID,这是设置每一列的宽度

gv.Columns[1].ItemStyle.Width = Unit.Percentage(35);
gv.Columns[2].ItemStyle.Width = Unit.Percentage(35);.....

如下:gv是gridview的ID,这是设置每一列的位置

gv.Columns[1].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
gv.Columns[2].ItemStyle.VerticalAlign = VerticalAlign.Middle;

还可以通过行绑定事件这样写:

e.Row.Cells[3].Style.Add("text-align", "center");
e.Row.Cells[4].Style.Add("text-align", "center");
e.Row.Cells[5].Style.Add("text-align", "center");

 

 

动态设置 GridView Web 服务器控件列宽

http://msdn.microsoft.com/zh-cn/ms178296%28VS.80%29.aspx

http://faquir.blog.sohu.com/42350065.html 

觉得这种方法有点狡猾呢....  - =

ExpandedBlockStart.gif 动态设置GridView列宽
protected   int  widestData;
protected   void  GridView1_RowDataBound( object  sender, 
    GridViewRowEventArgs e)
{
    System.Data.DataRowView drv;
    drv 
=  (System.Data.DataRowView)e.Row.DataItem;
    
if  (e.Row.RowType  ==  DataControlRowType.DataRow)
    {
      
if  (drv  !=   null )
      {
        String catName 
=  drv[ 1 ].ToString();
        Response.Write(catName 
+   " / " );
        
        
int  catNameLen  =  catName.Length;
        
if  (catNameLen  >  widestData)
        {
          widestData 
=  catNameLen;
          GridView1.Columns[
2 ].ItemStyle.Width  =
            widestData 
*   30 ;
          GridView1.Columns[
2 ].ItemStyle.Wrap  =   false ;
        }
        
      }
    }
}

protected   void  Page_Load( object  sender, EventArgs e)
{
    widestData 
=   0 ;
}



 

asp.net如何根据不同的客户端显示分辨率,动态设定gridview的height,使gridview在高度方向能满屏显示?

ClientScriptManager cs = Page.ClientScript; 
String cstext1 = "if(window.screen.width > 800){" + System.Environment.NewLine; 
cstext1 += "document.getElementById('" + GridView1.ClientID + "').style.height='800px';" + System.Environment.NewLine; 
cstext1 += "}" + System.Environment.NewLine; 
cs.RegisterStartupScript(Page.GetType(), "js", cstext1, true); 
http://social.microsoft.com/Forums/zh-CN/295/thread/98b187dd-a94d-481e-9e3f-f3f6ac83ea54 

 


我想在Asp.net   Web应用程序中使用MessageBox 该怎么解决?
我的目的是弹出对话框,这可以在Asp.net   Web应用程序中做到吗?

 

webform不能直接调用MessageBox

//简单的Msgbox
Response.Write(   " <Script> alert( 'Hello ') </Script> "   );
//需要确认Y/N的Msgbox
this.Button_Submit.Attributes[ "onClick "]   =   "javascript:return   confirm( 'Hello,Y/N? ') ";

MessageBox是服务器端函数,如果asp.net应用程序允许MessageBox,弹出对话框后必须单击确定服务器应用程序才能继续运行,因此MessageBox是不允许的 

 


 

 http://firststar.blog.sohu.com/104734671.html

 

VS2005应用ASP.NET2.0时,找不到Page_Unload的自动生成事件方法,Page_Load可以双击出现但可以手写,Page_Unload也执行,今天用一回,我想在那里释放数据库的连接,但没有得到我想要的结果,每次都是直接释放了,后来我才想起, Web是无状态的,每一次Load之后就会直接Unload,而不是我想的关闭时才执行的.所以不能再那里释放想在访问类的析构里做释放,但在重新打开页面时会遭遇连接打开和关闭的冲突,即使我用了像Conn.State != ConnectionState.Closed的判断,因此最后只有自己看情况进行关闭连接了
 

 

转载于:https://www.cnblogs.com/neru/archive/2010/06/05/1752127.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值