gridview编辑指定列,如何在GridView控件中实现编辑和删除功能?
gridview编辑指定列,如何在GridView控件中实现编辑和删除功能?详细介绍
本文目录一览: asp.net中在Gridview中自定义一列操作,应该怎么做?
前台gridview里
<asp:linkbutton id="lnkname" runat="server" commandargument="" commandname="Update" text="加密">
后台的OnRowCommand事件里
protected void OnRowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="Update" && StringtoNum.IsNum(e.CommandArgument.ToString()))
{
int Id = int.Parse(e.CommandArgument.ToString());
//加密代码
}
思路:先定义事件,在linkbutton上绑定事件,也就是一个CRUD的方法,然后在后台的OnRowCommand事件里调用绑定的事件即可。
具体举例如下:
1、前端的代码如下:
<asp:gridview id="gridViewDxjk" cssclass="gridview" runat="server" allowpaging="True"
DataKeyNames="P_ID" AutoGenerateColumns="False"
RowStyle-HorizontalAlign="Center" BorderWidth="1px" PageSize="17"
onrowdeleting="gridViewDxjk_RowDeleting"
OnRowDataBound="gridViewDxjk_RowDataBound"
onpageindexchanging="gridViewDxjk_PageIndexChanging" >
没有数据!
| 第 <asp:label id="lblPageIndex" runat="server" text=""> 页 /共 <asp:label id="lblPageCount" runat="server" text=""> 页 <asp:linkbutton id="LinkButtonFirstPage" runat="server" commandargument="First" commandname="Page" visible=""> 首页 <asp:linkbutton id="LinkButtonPreviousPage" runat="server" commandargument="Prev" commandname="Page" visible=""> 上一页 <asp:linkbutton id="LinkButtonNextPage" runat="server" commandargument="Next" commandname="Page" visible=""> 下一页 <asp:linkbutton id="LinkButtonLastPage" runat="server" commandargument="Last" commandname="Page" visible=""> 尾页 <asp:textbox id="txtNewPageIndex" runat="server" text="" width="20px" autopostback="true"> |
2、后端的话,由于需要弹出删除前的确认框,所以,这里需要在RowDataBound里面做点逻辑,同时,要想真正的删除,还需要触发RowDeleting事件,具体代码如下:
//报警删除
protected void gridViewDxjk_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string key = gridViewDxjk.DataKeys[e.RowIndex].Value.ToString();
bool flag = bll.Delete(Int32.Parse(key));
if (flag)
NXT_WLService.App_Code.JScript.Alert("删除成功!", this);
else
NXT_WLService.App_Code.JScript.Alert("删除失败!", this);
}
protected void gridViewDxjk_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton btn = (LinkButton)e.Row.Cells[1].Controls[0];
if (btn.Text.Equals("删除"))//删除钮才加提示讯息
btn.OnClientClick = "if (confirm('你确认要删除?')) javascript:__doPostBack('gridViewDxjk','Delete$" + e.Row.RowIndex.ToString() + "'); else return false;";
}
}
asp.net中gridview控件可不可设置只能对指定的列进行修改
可以
在数据源生成的updatecommand只保留你需要修改的列
在编辑gridview列里把不修改的全部改为只读模式
应该是在编辑列绑定的时候写的属性错了,把那个属性去掉就可以了!一般gridview在绑定数据时出现错误列表会报错
求代码:GridView 使用模版实现点击编辑按钮,只编辑某一列
GridView 72绝技里面
单击GridView右上角三角形,展开GridView任务,单击 编辑列,然后在选定的字段里:1.如果是BoundField,你可以找到右边有个属性 readonly,设置为true即可,换成代码如下
如果是TemplateField,可以有多种选择,用两个LABEL,或者把TextBox设置为readonly,代码如下:
//本处为正常显示的代码,例中是LABEL,你可以用TextBox,literal等等,看你需要。
<asp:label id="Label2" runat="server" text="">
//本处为编辑时的代码。
<asp:label id="Label1" runat="server" text="">
asp.net中gridview控件可不可设置只能对指定的列进行修改
可以的。你可以在窗体加载事件里面这样写,columns里面可以是索引也可以是列的名称。
dataGridView1.Columns[index].ReadOnly = false;
应该是在编辑列绑定的时候写的属性错了,把那个属性去掉就可以了!一般gridview在绑定数据时出现错误列表会报错
haoba
可以
在数据源生成的updatecommand只保留你需要修改的列
在编辑gridview列里把不修改的全部改为只读模式
如何设置C#.net GridView 列可编辑?
快捷键F4 在属性里面就可以改了。 如果你是动态绑定的话就在绑定的地方加上代码就可以了
--编辑数据在GridView1_RowUpdating事件下写下面的代码:sqlcon = new SqlConnection(strCon);
string sqlstr = update 表 set 字段1='
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + ',字段2='
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + ',字段3='
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + ' where id='
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + ';
sqlcom=new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;bind();--取消编辑的话在GridView1_RowCancelingEdit事件下写下面的代码:
如果 有动态的就如下:在属性栏中有一个事件,加上 RowUpdating 事件就可以 了,再在事件设置编辑索引为当前索引然后 重新绑定GridView
如果 是想所有列都可编辑就,就把列转换成模板,把ItemTemplete中的Label换成你要的控件就可以了
asp.net gridview控件对某一列设置可编辑
我在不想让编辑某列的情况下是这么做的
先设置可编辑行,这时编辑行里除了主关键字行都变成了textbox
然后把那些不想让动的列的单元格里的控件controls[0]的enable设置成false
设置C#.net GridView 列可编辑
可以直接在数据连接对话框里设定,你在连接时里面不是有几个先项的吗,(好象是三个吧,好久没有用了)有一个就是设定这个的,前提是这个表必须有主键的!!!
你说的可编辑是什么意思!
是说数据源没有绑定上去?
你在GRIDVIEW中找到那个DataPropertyName属性!
把相应列的DataPropertyName植设为数据库中的列名
有很多属性影响,建议你先试试这个
GridView.ReadOnly=false;
设置属性
this.GridView1.AutoGenerateEditButton=true
设置属性如下:
this.GridView1.AutoGenerateEditButton = true;
--激活编辑状态在GridView1_RowEditing事件下写下面的代码:GridView1.EditIndex = e.NewEditIndex;
--编辑数据在GridView1_RowUpdating事件下写下面的代码:sqlcon = new SqlConnection(strCon);
string sqlstr = "update 表 set 字段1='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom=new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
--取消编辑的话在GridView1_RowCancelingEdit事件下写下面的代码:
GridView1.EditIndex = -1;
bind();
//绑定
public void bind()
{
string sqlstr = "select * from 表";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "表");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "id" };//主键
GridView1.DataBind();
sqlcon.Close();
}
C#中datagridview手动绑定数据后怎么编辑列?
[原创]C# 数据操作窗体实现增/删/改/查(图)源代码
http://hi.baidu.com/jonnysuen/blog/item/cec692502c76f8858c543094.html
搜索"C#易学网"或进入我的百度空间,有大量原创代码。
在aspx页面里面的:
应该很清楚了吧!
给你最有效的办法:
在查询数据库,返回结果集时更改查询语句,直接返回中文名称的表。例如:select wordID as '单词ID',wordEnglish as '英文单词', wordChinese as '中文解释' from Word
这样的话绑定数据到DataGradView控件时仅仅使用DataGradView控件的一个属性datagridview1.DataSource足够了!!!(如果是WEB程序后面加datagridview1.DataBind();)
查询的时候最好把顺序排好,这样界面代码的复杂程度大大减少。
根据你的补充,你是为显示了所有列而烦恼吧。
这样搞定: this.datagridview1.Columns[1].Visible = false;
或者这样:this.datagridview1.Columns["userID"].Visible = false;
不想让哪一列显示就更改哪一列的Visible属性值为false即可!(列的标示可以用下标,也可以用数据库查出数据时的列名)
另外你说HeaderText属性,WinForm里的DataGradView当然有这个属性了,它是用来设置列头文字的,你可以设置某列的列头文字为英文,也可以设置成中文,示例如下:
this.datagridview1.Columns[1].HeaderText = "UserName";
this.datagridview1.Columns[1].HeaderText = "用户名字";
这样解释你该清清楚楚,明明白白了吧~
如何在GridView控件中实现编辑和删除功能?
你是要自己写编辑和删除还是想借助gridview自带的呢?都可以的,自带的呢 你需要在gridview增加一个操作列模板类型的,在里面放上操作按钮,指定事件行为为edi t 并且把gridview的编辑事件激发赋给这个edit按钮的click,删除的一样的,只是是delete,编辑呢 你需要处理编辑模板,在点击编辑的时候把gridview置为编辑状态,而且是编辑当前行,完了点保存 处理完了,在你的操作列的模板内需要这几个按钮 编辑(取消、保存)、删除,在点击编辑你把编辑和删除按钮隐藏,显示 取消和保存,取消或保存后显示编辑和删除按钮,想必那些事件怎么处理你是会的。
1.所接的数据源(即数据表)必须有主键;
2.配置SqlDataSource:点击配置数据源,新建一个连接,下一步,选择一个表,要具有增加、编辑和删除功能,在这个窗体里点高级按钮,弹出高级SQL生成选项的窗口,如果所选择的表(即数据源)没有主键,在这个窗口的所有选项是灰色的,无法使用。在这个窗口里生成增加、修改、删除语句。这样完成了SqlDataSource控件的数据源配置。
3.配置GridView控件。
(1)在属性面板设置DataSourceID属性为数据源控件SqlDataSource控件。
(2)打开GridView任务面板(在这个控件的右上按钮处),选择编辑列,在此可以增加要显示的列。
(3)在GridView任务面板选择启用编辑、启用删除项,要注意的是:如果在配置SqlDataSource时没有通过高级按钮来生成增加、修改、删除语句,在这个任务面板中将无法见到这几个选项。这样选择后,会自动在GridView生成一列,具有增加、修改、删除按钮。另外也可以通过编辑列或模板列的方式生成增加、修改、删除按钮。通过以上三步,不用编写一句代码就能使GridView具有编辑、增加、删除功能,很方便。