webform中datagrid动态添加多个模板列和checkbox列的问题!

gavintolee 2004-11-01 01:28:26
SqlDataAdapter da = new SqlDataAdapter(strComm,myConnection);
DataSet ds = new DataSet();

da.Fill(ds,"UserRight");
//ds.Tables[0].Columns.Add(new DataColumn("BoolValue", typeof(bool)));
DataView dv = new DataView();
dv = ds.Tables[0].DefaultView;




dg.DataKeyField="User_ID";
dg.DataSource=dv;
dg.DataBind();

因为添加的多个模板列和checkbox列的个数不确定,所以只能在后台代码中来实现,
checkbox列对应的是一个表中的部门,一个checkbox对应一个部门。

<asp:BoundColumn DataField="Position_Name" HeaderText="职位"></asp:BoundColumn>
<asp:BoundColumn DataField="User_Name" HeaderText="用户名"></asp:BoundColumn>
<Asp:TemplateColumn ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Center">
<HeaderTemplate>
<Asp:LinkButton ID="lb1" Runat="server" Runat="server">
<font color="White">新建任务</font></Asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="c1" runat="server" />
</ItemTemplate>
</Asp:TemplateColumn>
。。。。。。在接着添加多个checkbox列!
请高人指点~~~
...全文
331 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
freshin 2004-11-04
  • 打赏
  • 举报
回复
remark
wyfwyf2000 2004-11-04
  • 打赏
  • 举报
回复
谢谢
gavintolee 2004-11-03
  • 打赏
  • 举报
回复
有高人指点吗?谢谢了!~
xiaoslong 2004-11-02
  • 打赏
  • 举报
回复
帮顶
常修溢 2004-11-02
  • 打赏
  • 举报
回复
关注.
微启子 2004-11-02
  • 打赏
  • 举报
回复
顶啊!!!
520NET 2004-11-02
  • 打赏
  • 举报
回复
LG
happyjun2000 2004-11-02
  • 打赏
  • 举报
回复
for (int i=0;i<gridmain.Items.Count;i++)
{
//CheckBox chkTemp=(CheckBox)gridmain.Items[i].FindControl("chkSel");
CheckBox chkTemp = (CheckBox)gridmain.Items[i].Cells[0].Controls[0] ;//不行换Controls[1]或其他
if(chkTemp.Checked)
{
//操作
}
}
gavintolee 2004-11-02
  • 打赏
  • 举报
回复
而且这里有个问题,动态增加的模板列 不计算在e.Item.Cells.Count.ToString()之中
比方以前有三个列,动态增加四个checkbox模板列,e.Item.Cells.Count.ToString()还是3~!~
gavintolee 2004-11-02
  • 打赏
  • 举报
回复
happyjun2000(蓝色游侠∮http://Community.CSDN.NET) :你好!
要设定某行的所有checkbox的checked?怎么弄呢?
private void dg_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

if(e.CommandName=="row")
{
//设定此行的所有checkbox列的checked

}
gavintolee 2004-11-01
  • 打赏
  • 举报
回复
列加上了,但是没办法得到每列checkbox的值~:(
falaowang 2004-11-01
  • 打赏
  • 举报
回复
帮你顶
happyjun2000 2004-11-01
  • 打赏
  • 举报
回复
TemplateColumn tcolumn_unitPrice=new TemplateColumn();
tcolumn_unitPrice.ItemTemplate=new bizlogic.tempColumn();
gridmain.Columns.Add(tcolumn_unitPrice);
///////////////
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace bizlogic
{
//模板列的textbox的模板建立
public class tempColumn : ITemplate
{
public tempColumn()
{
//Add constructor stuff here
}

public void InstantiateIn(Control container)
{
TextBox tbx1 = new TextBox();
tbx1.DataBinding += new EventHandler(this.BindTextbox);
container.Controls.Add(tbx1);
}

public void BindTextbox(object sender, EventArgs e)
{
checkBox chk1 = (checkbox)sender;
DataGridItem container = (DataGridItem)chk1.NamingContainer ;
//String strVals =Convert.ToString(DataBinder.Eval(((DataGridItem)container).DataItem, "inUnitPrice"));
chk1.Checked = true;

}
}
}

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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