在DataGrid的Header上面再加一层,并在该层的每列中放一个TextBox,如何做?

为防老年痴呆而编程 2004-04-19 11:42:20
在DataGrid的Header上面再加一层(即多层),并在该层的每列中放一个TextBox,如何做?
...全文
36 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
再顶一下
walkinhill 2004-04-19
  • 打赏
  • 举报
回复
ppp80() 给出的代码已经很清楚了,稍微改变一下就行了。

你是一下 ppp80() 的代码自然而然就知道怎么做了。
  • 打赏
  • 举报
回复
楼上两位不要抄别人的东西,请看清我的要求再答,不过还是谢过了!
ppp80 2004-04-19
  • 打赏
  • 举报
回复
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
int nColumn = 6;
for(int i=0; i<nColumn; i++)
e.Item.Cells.RemoveAt(0);


DataGridItem dgi = new DataGridItem(0,-1,ListItemType.Header);
DataGridItem dgi1= new DataGridItem(0,-1,ListItemType.Header);
Table tb = new Table();
tb = (Table)DataGrid1.Controls[0];
tb.Rows.Clear();
tb.Rows.AddAt(0,dgi);
tb.Rows.AddAt(1,dgi1);
TableCell tc = new TableCell();
TableCell tc1 = new TableCell();
TableCell tc2 = new TableCell();
TableCell tc3 = new TableCell();
TableCell tc4 = new TableCell();
TableCell tc5 = new TableCell();
TableCell tc6 = new TableCell();
TableCell tc7 = new TableCell();
TableCell tc8 = new TableCell();
TableCell tc9 = new TableCell();
TableCell tc10 = new TableCell();
TableCell tc11 = new TableCell();

tc1.Text = "设备名称"; tc1.RowSpan=2; dgi.Cells.Add(tc1);
tc2.Text = "编 号"; tc2.RowSpan = 2; dgi.Cells.Add(tc2);
tc3.Text = "台班单价"; tc3.RowSpan = 2; dgi.Cells.Add(tc3);
tc4.Text = "实 际 完 成"; tc4.ColumnSpan=3; dgi.Cells.Add(tc4);
tc5.Text="按实际完成工程量核定"; tc5.ColumnSpan=2; dgi.Cells.Add(tc5);
tc6.Text="节(+)<BR>超(-)"; tc6.RowSpan=2; dgi.Cells.Add(tc6);
tc7.Text = "工程量"; dgi1.Cells.Add(tc7); tc8.Text = "台 班";
tc8.ColumnSpan = 1; dgi1.Cells.Add(tc8);
tc9.Text = "金 额"; dgi1.Cells.Add(tc9);
tc10.Text = "台 班"; dgi1.Cells.Add(tc10);
tc11.Text = "金 额"; dgi1.Cells.Add(tc11);
}

}
SVG 2004-04-19
  • 打赏
  • 举报
回复
private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
TextBox txt = new TextBox();
e.Item.Cells[0].Controls.Add(txt);
}
}
  • 打赏
  • 举报
回复
下面的代码做如何更改,才能实现这样的功能:
Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
If e.Item.ItemType = ListItemType.Header Then
Dim dgItem As DataGridItem
Dim dgCell As TableCell
Dim dgTextBox As TextBox

dgItem = New DataGridItem(0, -1, ListItemType.Header)
dgCell = New TableCell
dgCell.Controls.Add(New TextBox)
dgItem.Cells.Add(dgCell)
DataGrid1.Controls(0).Controls.AddAt(0, dgItem)
End If

End Sub
SVG 2004-04-19
  • 打赏
  • 举报
回复
我從不抄別人代碼:
private void dg_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
TextBox txt = new TextBox();
e.Item.Cells[0].Controls.Add(txt);
}
}
我的意思是簡單介紹, 這樣可以在 header 加一個控件.
具體的你可以加一個 LiteralControl.

指導:
string str = "</td></tr><tr><td><input name=txt></td>....<td>";
e.Item.Cells[e.Item.Cells.Count-1].Controls.Add(new LiteralControl(str))
看看 str 的值, </td></tr> 終結前者的 Cell.

62,046

社区成员

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

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

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

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