我想做一个GridView的更新
点击一行中的某一列 变为可编辑 不跳转 点击按钮修改数据库行
或者
点击 修改按钮 将该修改按钮所在的一行的所有列变为可编辑 然后点击 更新按钮 修改数据库行
点击一行中的某一列 变为可编辑 不跳转 点击按钮修改数据库行
或者
点击 修改按钮 将该修改按钮所在的一行的所有列变为可编辑 然后点击 更新按钮 修改数据库行
解决方案 »
- 关于MemberShip、profile类
- iis6上.netframework4 的网页打开问题
- 在asp中 我绑定一个table,但是我想把它循环成4行5列。请大虾们帮助下。
- 给出“正在读取数据...”的提示
- 请教高手,关于服务中转的
- asp.net编码问题,小弟做毕设,急!在线等。
- 求助人脸识别技术!
- 用Infragistics WebDateTimeEdit 控件时总是报错,哪位大哥会用
- 刚开始学asp.net 还不错
- *******************关于c#编写的ftplibary的问题**************
- 抓取其他网站上的静态文本文件方法哪个最好
- 163的在线编辑器怎么把内容传到后台??标题要长~
等LX回答
{
GridView1.EditIndex = e.NewEditIndex;
Bind();
} protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["GetConnection"].ToString());
int id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
string sqlstr = "update Product_Category set name=@name,pid=@pid,[goto]=@goto where id="+id;
SqlCommand cmd = new SqlCommand(sqlstr,con);
cmd.CommandType = CommandType.Text;
try
{
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.Trim();
cmd.Parameters.Add("@pid", SqlDbType.Int).Value = int.Parse(((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.Trim());
cmd.Parameters.Add("@goto", SqlDbType.VarChar).Value = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.Trim();
if (con.State == ConnectionState.Closed)
{
con.Open();
}
cmd.ExecuteNonQuery();
}
catch { }
finally
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
GridView1.EditIndex = -1;
Bind(); }
你点编辑的时候这列就不会被编辑了。
要是楼主说的是动态的点击任意行任意列就编辑该行该列,这个方法就不行了。
GridView代码 <asp:GridView ID="GridView1" runat="server" CssClass="table td" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" Width="1800px" EmptyDataText="无数据" DataKeyField="ID" OnRowEditing="GridView1_RowEditing" OnRowCancelingEdit="Cancel" OnRowUpdating="GridView1_RowUpdating" >
<Columns>
<asp:TemplateField HeaderText="日期">
<ItemTemplate>
<asp:Label ID="lblDataTime" runat="server" Text='<%# Bind("Date") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtDataTime" Text='<%# Bind("Date") %>' Width="100%" Runat="server">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
.......
<asp:TemplateField HeaderText="id" Visible="False">
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Bind("id") %>'></asp:Label>
<%--<asp:HiddenField ID="lblId" runat="server" Value='<%# Eval("id") %>' />--%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>后台主要代码 #region Edit
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
this.GridView1.EditIndex = e.NewEditIndex;
publicModth();//绑定
}
#endregion #region Cancel protected void Cancel(object sender, GridViewCancelEditEventArgs e)
{
this.GridView1.EditIndex = -1;
publicModth();();//绑定 }
#endregion
#region Update
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{ try
{
//更新操作
this.GridView1.EditIndex = -1;
}
#endregion也就这几个事件 没了 其实我想的是JS操作 鼠标点击 那一列那一列可以输入 但是不行了技术不够 下次继续研究吧