?关于GridView相同行信息合并的新问题?

kommy2pp 2009-03-05 09:22:09
Hi,大伙好!

问题是这样的:
GridView中需要合并的某列为TemplateField类型字段,并在EditItemTemplate模版中使用了DropDownList控件,使用网上现有的合并行的方法,在显示的状态下可以合并,但是在编辑的状态下无法合并,因为此时编辑行中的该列为DropDownList而不是Lable。在编辑状态下如何才能达到合并的效果(即该行可以进行编辑,其他行则正常合并)?
已经搜索了可以搜索的,没有现成的解决办法...
在线等。。。。。。

...全文
189 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kommy2pp 2009-03-12
  • 打赏
  • 举报
回复
问题已经解决了,自己摸索出来的。。。
最后效果:
----显示时:
name num
0
1
a 2
3
4

5
6
7
b 8
9
10
----编辑时:
name num
[可选]0
a 1
a 2
a 3
a 4
b 5
b 6
b 7
b 8
b 9
b 10

主要思路:
1./*********************************************/

#region 合并GridView中某列相同信息的行(单元格)
/// <summary>
/// 合并GridView中某列相同信息的行(单元格)
/// </summary>
/// <param name="GridView1">GridView</param>
/// <param name="cellNum">第几列</param>
public static void GroupRows(GridView GridView1,int intColNum, string strTarget)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];

for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.Rows[i];

//纵向相邻单元格的内容相同
//找出使用隐藏字段存储的值,这是关键3.
if (((HiddenField)gvr.Cells[intColNum].FindControl(strTarget)).Value ==
((HiddenField)gvrNext.Cells[intColNum].FindControl(strTarget)).Value)
{
gvrNext.Cells[intColNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[intColNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}


if (i == GridView1.Rows.Count - 1)
{
gvr.Cells[intColNum].RowSpan = rowSpanNum;
}
}
}
}
#endregion

2./*********************************************/
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bind();//绑定数据源
GroupRows(GridView1, 2, "HFPostA2");//关键2,点击“取消”后合并显示第"2"列
}
3./*********************************************/
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();//绑定数据源
GroupRows(GridView1, 2, "HFPostA2"); //关键1,发出请求时合并显示第"2"列

}
}
kommy2pp 2009-03-06
  • 打赏
  • 举报
回复
避开该行就行,再琢磨琢磨。。。
kommy2pp 2009-03-06
  • 打赏
  • 举报
回复
未点击“编辑”(即显示时)效果如:http://blog.csdn.net/luq885/archive/2007/05/19/1616438.aspx
里面的第二个表格所示;

点击(比如第一行最后一列存在)“编辑”按键,
这时这行里“a”所在单元格呈现为DropDownList,
而其它行的效果还是如同第二个表格所示。

kommy2pp 2009-03-06
  • 打赏
  • 举报
回复
行不是相同的,仅仅是某列里信息相同的单元格合并,当点“编辑”时这行的这个单元格就变为DropDownList可选项,而不是显示时的Label。谢谢!
Micao_tong 2009-03-06
  • 打赏
  • 举报
回复
竟然行是相同的,為什麼又要選擇合併呢?
將相同的記錄出現一次不就可以了麼,這個在sql中完全可以實現。
要不就是其它的,你的問題描述很模糊。。。
  • 打赏
  • 举报
回复
帮顶
阿云ivan 2009-03-05
  • 打赏
  • 举报
回复
不太明白

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧