DataGrid中固定几列的问题!!十万火急

zzy1254 2006-11-01 07:43:46
在DataGrid中可不可以固定前几列啊,
例如一个表或一个查询有二十个字段,但是前面的编号和商品名需要一直显在开头,拖动滚动条时只是后面的列左右滚动,这样可以更好的查看一些商品的详细资料。

同时,列的标题也不能出了DataGrid列表框,可以更好的对应详细信息。
请各位高手们给解决一下吧,想的头都快白了
...全文
519 24 打赏 收藏 举报
写回复
24 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zzy1254 2006-11-03
  • 打赏
  • 举报
回复
那使用vcFlexgrid这个怎么做啊,有没有部分代码啊
zzy1254 2006-11-02
  • 打赏
  • 举报
回复
不是吧,没有人会????????????
ttjacky 2006-11-02
  • 打赏
  • 举报
回复
cs的话用ComponentOne中的VSFlexGrid就有这个功能
jimo_lang 2006-11-02
  • 打赏
  • 举报
回复
Mark
xyh2002 2006-11-02
  • 打赏
  • 举报
回复
作两个div分别放两个datagrid,第一个只放置你不想移动的列,另一个放置可以托的列
CCjian 2006-11-02
  • 打赏
  • 举报
回复
原来是web中,哎
xuxingok 2006-11-02
  • 打赏
  • 举报
回复
分两个datagrid表示
hongchuzhen 2006-11-02
  • 打赏
  • 举报
回复
dataGrid1.Columns["ID"].Frozen=true;
yl_clear 2006-11-02
  • 打赏
  • 举报
回复
有難度啊。關注中
qltouming 2006-11-02
  • 打赏
  • 举报
回复
瞧瞧
jacobwc 2006-11-02
  • 打赏
  • 举报
回复
拜一下LS
rachy 2006-11-02
  • 打赏
  • 举报
回复
分成2个datagrid,对齐就好了,两个grid中都隐藏列id,用id来关联
jay111 2006-11-02
  • 打赏
  • 举报
回复
css 样式 代码

.ImmobilityItem
{
font-size: 9pt;
cursor: hand;
font-family: 宋体;
height: 22px;
/*background-color:#DEDFDE;*/
background-color:#DFFFE;
/*left: expression(document.getElementById("divgird").scrollLeft); */
left: expression(this.parentElement.parentElement.parentElement.parentElement.scrollLeft);
position: relative;


}


.ImmobilityheadItem
{
border-right: white 1px solid;
padding-right: 1px;
padding-left: 1px;
font-size: 9pt;
background-image: none;
padding-bottom: 1px;
vertical-align: sub;
color: #ffffff;
padding-top: 1px;
font-family: 宋体;
height: 22px;
background-color:#3280be;
text-align: center;
left: expression(this.parentElement.parentElement.parentElement.parentElement.scrollLeft);
/*TOP: expression(document.getElementById("divgird").scrollTop); */

position:relative;



}


js代码

//固定前2列
function Immobility()
{
document.all("divheader").scrollLeft = document.all("divgrid").scrollLeft;
for(var i=0;i<document.all("datgrid1").rows.length;i++)
{

for (var j=0;j<2;j++)
{
document.all("datgrid1").rows[i].cells[j].className = "ImmobilityItem";
document.all("tbheader").rows[0].cells[j].className = "ImmobilityheadItem";

}

}

}


html代码


<DIV class="GridDiv" id="divheader" style="OVERFLOW: hidden; WIDTH: 800px; HEIGHT: 48px"
align="left">
<table id="tbheader" style="WIDTH: 1500px; HEIGHT: 25px" cellSpacing="0"
cellPadding="0">
<tr>
<td style="WIDTH: 100px">列名1</td>
<td style="WIDTH: 100px">列名2</td>
<td style="WIDTH: 100px">列名3</td>
<td style="WIDTH: 100px">列名4</td>
.
.
.
. </tr>
</table>
</DIV>

<div id="divgrid" style=" WIDTH: 800px; HEIGHT: 500px"
onscroll="Immobility()" ><asp:datagrid id=datgrid1 runat="server" Width="850px" AllowPaging="True" AutoGenerateColumns="False" ShowHeader="False">
.
.
.
.
.
相应的模版列,宽度应该跟表头的列一至
1
2
3
4
.
.
.
.

</asp:datagrid></div>



rainlily0315 2006-11-02
  • 打赏
  • 举报
回复
答案是可以的。
taomaintao 2006-11-02
  • 打赏
  • 举报
回复
zzy1254 2006-11-02
  • 打赏
  • 举报
回复
我用的是C/S模式啊,可不可以
star_ais 2006-11-02
  • 打赏
  • 举报
回复
liujia_0421() 不懂别在这里装。用模板就可以固定DataGrid的任何一列!·!!!!!!误人子弟·!!
widegoose 2006-11-02
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5127/5127911.xml?temp=.1057093
x_ch 2006-11-02
  • 打赏
  • 举报
回复
似乎记得以前曾经看见到过这样的例子,google下吧。

将固定列与datagrid分开设计应该可以
venya 2006-11-02
  • 打赏
  • 举报
回复
可以尝试下这样处理:
分成左右两个表格来处理,通过div控制,可以实现类似Excel冻结的功能;
还有就是采用多态页,分类显示,每个子页的表格都显示关键的几列。
加载更多回复(4)
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-11-01 07:43
社区公告

让您成为最强悍的C#开发者