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 展开
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 展开
5个回答
展开全部
在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;
这一段代码删除
后面写
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["操作"] = "";
也就是给这添加一个空列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
这样写:
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,但是不管用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
手写太麻烦了,直接选中gridview,然后选择编辑模板,在里面就可以进行数据绑定和添加控件操作,添加的控件用遍历就找到了!
追问
那样我就没必要问了大哥。。!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你那样肯定是错的3 你只能这样写
1:newRow["操作"] = "<a href='这里是删除处理' onclick='<script>confirm('你确定要删么?');</script>'>删除</a>";
2:在gridview的数据绑定事件中动态添加一个linkbutton 大概是这样gridview.rows[0][操作列].controls.add(linkbutton);
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里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在前台写出绑定的字段,到后台去绑定这些字段吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询