gridview 动态的绑定数据中如何加入控件??

//数据源DataTabletblDatas=newDataTable("Message");//为表制定列集合DataColumndc=null;//为相应的表中加入列... //数据源
DataTable tblDatas = new DataTable("Message");
//为表制定列集合
DataColumn dc = null;
//为相应的表中加入列集合,制定列名和类型
dc = tblDatas.Columns.Add("信息内容", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("时间", Type.GetType("System.DateTime"));
dc = tblDatas.Columns.Add("发件人", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("收件人", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("邮件状态", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("操作", Type.GetType("System.String"));
DataRow newRow = null;
foreach (Message message in messages)
{
newRow = tblDatas.NewRow();
newRow["发件人"] = message.Send_User.User_Name;
newRow["收件人"] = message.Receive_User.User_Name;
newRow["信息内容"] = message.Content;
newRow["时间"] = message.Time;
newRow["邮件状态"] = message.State == 1 ? "已读" : "未读";
LinkButton linkButton = new LinkButton();
linkButton.Text = "删除";
linkButton.OnClientClick = "<script>confirm('你确定要删么?');</script>";
newRow["操作"] = linkButton;
tblDatas.Rows.Add(newRow);
}
GridView1.DataSource = tblDatas;
但出来是这样
信息 内容 时间 发件人 收件人 邮件状态 操作
撒旦发射点发 2011/9/26 0:00:00 张飞 刘多 未读 System.Web.UI.WebControls.LinkButton
展开
 我来答
帐号已注销
2011-10-07 · TA获得超过2823个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:700万
展开全部
在GridView1.DataSource=tblDatas;
后面写
GridView1.DataBind();
foreach(GridViewRow gvr in GridView1.Rows){
LinkButton lnkbtn = new LinkButton();
lnkbtn.Text = "删除";
lnkbtn.Click+=new EventHandler(lnkbtn_Click);//得完成lnkbtn_Click这一个事件
gvr.Cells["操作"].Controls.Add(lnkbtn);
}

protected void lnkbtn_Click(object sender,EventArgs e) {
Response.Write("<script>confirm('是否删除');</script>");
}

把你前面的
LinkButton linkButton = new LinkButton();
linkButton.Text = "删除";
linkButton.OnClientClick = "<script>confirm('你确定要删么?');</script>";
newRow["操作"] = linkButton;
这一段代码删除
更多追问追答
追问
用你的方法我这控件没看见加上去啊。。!!纳闷。。
追答
把这段代码 改一下看看
LinkButton linkButton = new LinkButton();
linkButton.Text = "删除";
linkButton.OnClientClick = "confirm('你确定要删么?');";
newRow["操作"] = linkButton;
改成
newRow["操作"] = "";
也就是给这添加一个空列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
307482311
推荐于2016-03-15 · TA获得超过1471个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:310万
展开全部
GridView有个行绑定后才触发的事件,所以你那个LinkButton要写到行绑定中。
这样写:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
LinkButton linkButton = new LinkButton();
linkButton.Text = "删除";
linkButton.OnClientClick = "<script>confirm('你确定要删么?');</script>";
linkButton.Command += new CommandEventHandler(你的事件方法);//这里要注册事件, //否则点击了是没用的
e.Row.Cells[5].Controls.Add(linkButton);
}
追问
用您的方法是可以,但是标题也变成删除了,怎么样把标题给弄成别的呢??比如说操作??我试过用headText,但是不管用。
用您的方法是可以,但是标题也变成删除了,怎么样把标题给弄成别的呢??比如说操作??我试过用headText,但是不管用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tribe_1987
2011-10-08
知道答主
回答量:53
采纳率:0%
帮助的人:13.6万
展开全部
手写太麻烦了,直接选中gridview,然后选择编辑模板,在里面就可以进行数据绑定和添加控件操作,添加的控件用遍历就找到了!
追问
那样我就没必要问了大哥。。!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
min565220
2011-10-07 · 超过20用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:44.7万
展开全部
你那样肯定是错的3 你只能这样写
1:newRow["操作"] = "<a href='这里是删除处理' onclick='<script>confirm('你确定要删么?');</script>'>删除</a>";
2:在gridview的数据绑定事件中动态添加一个linkbutton 大概是这样gridview.rows[0][操作列].controls.add(linkbutton);
追问
gridview.rows[0][操作列].controls.add(linkbutton); 
你的做法我试过,但是会出超出索引大小,我在循环里已经添加了啊tblDatas.Rows.Add(newRow);
追答
我在循环里已经添加了啊tblDatas.Rows.Add(newRow);   你这样是肯定不行的   你的这个tblDatas是datatable    只是gridview的数据源  不能往里面添加控件  只能添加标签  你添加控件必须是在gridview里面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那夜小0i
2011-10-07 · TA获得超过154个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:253万
展开全部
你在前台写出绑定的字段,到后台去绑定这些字段吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式