如何给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%" ...
{
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
觉得这种方法有点狡猾呢.... - =
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); |
我想在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