我在服务器端写的数据显示和"编辑"按扭的代码,但是我在点击编辑后,修改
TextBox框的值,然后点击更新。可是得到的不是修改以后的值,而是没有修
改以前的值。我调试了一下,发现进入到了RowUpdating事件里了,但是用
String tb=((TextBox)gv.Rows[e.RowIndex].Cells[2].Controls[0]).Text
得到的值是没有修改以前的。请教了二十几个群,和十几个论坛,就是没有
人知道。在线急等。
TextBox框的值,然后点击更新。可是得到的不是修改以后的值,而是没有修
改以前的值。我调试了一下,发现进入到了RowUpdating事件里了,但是用
String tb=((TextBox)gv.Rows[e.RowIndex].Cells[2].Controls[0]).Text
得到的值是没有修改以前的。请教了二十几个群,和十几个论坛,就是没有
人知道。在线急等。
解决方案 »
- C#调用C++的dll,怎么返回二维数组(来者给分)
- 问一个遍历随机数的问题!
- 来者有分~~
- 跪求此问,不要笑我……肯请各位相助,在线等待
- 中文支持的问题,谢谢!
- 怎么能实现类似于随机抽奖那种程序呀?
- 初次接触vs2003 -- 打开项目时非常慢,而且某些操作IDE会死掉,有经验的进来指点一下.
- Word.Application 数据类型,该导入什么命名空间?
- 大家帮我估估价,这个网站大概要多少钱 www.okchinaware.com
- 在vs.net的IDE环境下,在页面的html方式下,编辑页面。。。。
- 本人是asp.net的初学者,谁能给我一个类似于asp中表单提交并在另一页显示的一个小例子,谢谢
- 100分求解难题,confirm返回的值如何被回传到服务器端再处理
http://goforideal.bokee.com/viewdiary.14490513.html
http://community.csdn.net/Expert/topic/5547/5547135.xml?temp=.050152另,LZ 把代码贴出来晒晒!看代码比较容易些!
if(!IsPostBack)里面
要不然每次页面回送都会进行一次数据绑定,数据总是初始的
{
if (!IsPostBack)
{ BindRole();
}
}
private void BindRole()
{
DataTable dt = roleDB.GetAllRole();
gvRoles.DataSource = dt.DefaultView;
gvRoles.DataBind();
}
protected void gvRoles_RowEditing(object sender, GridViewEditEventArgs e)
{
gvRoles.EditIndex = e.NewEditIndex;
BindRole(); }
protected void gvRoles_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvRoles.EditIndex = -1;
BindRole();
}
protected void gvRoles_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow gvrRoles = gvRoles.Rows[gvRoles.EditIndex];
int iRoleID = int.Parse(gvRoles.DataKeys[gvRoles.EditIndex].Value.ToString());
string strRoleName = ((TextBox)gvrRoles.FindControl("txtRoleName")).Text.Trim();
string strRoleDes = ((TextBox)gvrRoles.FindControl("txtDes")).Text.Trim();
int iFlag = 0;
CheckBox chkFlagNew = (CheckBox)gvrRoles.FindControl("chkEFalg");
if (chkFlagNew.Checked == true)
iFlag = 1;
bool bFlag = roleDB.UpDateRole(strRoleName, strRoleDes, iFlag,iRoleID);
lbError.Text = strRoleName + "更新成功";
gvRoles.EditIndex = -1; BindRole(); }
}
model.ID = Convert.ToInt32(GridView.DataKeys[GridView.Rows[e.RowIndex].DataItemIndex].Value.ToString());
获取 ID值
在 html里面 GridView的属性 DataKeyNames="ID" ID是 表的主键
你试一下
GridView .EditIndex = e.NewEditIndex;
BankBind();
<Columns>
<asp:BoundField DataField="test" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
private void BindData()
{
GridView1.DataSource = //...Get DataSource;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindData(); }
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string s = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
//update......
GridView1.EditIndex = -1;
BindData();
}
你试一下
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using class1;
public partial class _Default : System.Web.UI.Page
{
Class1 c = new Class1();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bind();
}
}
protected void bind()
{
gv.AllowPaging = true;
gv.AutoGenerateColumns = false;
gv.PageSize = 5;
gv.DataSource = new Class1().getinfo(); gv.Columns.Clear(); BoundField bf = new BoundField();
bf.HeaderText = "编号";
bf.ReadOnly = true;
gv.Columns.Add(bf); bf = new BoundField();
bf.HeaderText = "图书名称";
bf.DataField = "title";
bf.ReadOnly = true;
gv.Columns.Add(bf); bf = new BoundField();
bf.HeaderText = "图书价格";
bf.DataField = "price";
gv.Columns.Add(bf); ButtonField bt = new ButtonField();
bt.HeaderText = "编辑";
bt.Text = "编辑";
bt.CommandName = "Edit";
bt.ButtonType = ButtonType.Button;
gv.Columns.Add(bt); gv.DataBind();
}
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.EmptyDataRow)
{
e.Row.Cells[0].Text = (e.Row.RowIndex + gv.PageIndex * gv.PageSize + 1).ToString();
} if ((e.Row.RowState & DataControlRowState.Edit) != 0)
{
TextBox tb = (TextBox)e.Row.Cells[2].Controls[0];
tb.Width = 40; e.Row.Cells[3].Controls.Clear(); Button b = new Button();
b.Text = "更新";
b.CommandName = "Update";
e.Row.Cells[3].Controls.Add(b); b = new Button();
b.Text = "取消";
b.CommandName = "Cancel";
e.Row.Cells[3].Controls.Add(b);
}
}
protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gv.PageIndex = e.NewPageIndex;
bind();
}
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
bind();
}
protected void gv_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gv.EditIndex = -1;
bind();
}
protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string tb = ((TextBox)gv.Rows[gv.EditIndex].Cells[2].Controls[0]).Text;
decimal tbs = decimal.Parse(tb);
string i = gv.Rows[e.RowIndex].Cells[1].Text;
c.updates(i,tbs);
gv.EditIndex = -1;
bind();
}}html:代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: center">
<asp:GridView ID="gv" runat="server" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None"
BorderWidth="1px" CellPadding="3" Height="147px" OnPageIndexChanging="gv_PageIndexChanging"
OnRowCancelingEdit="gv_RowCancelingEdit" OnRowDataBound="gv_RowDataBound" OnRowEditing="gv_RowEditing" OnRowUpdating="gv_RowUpdating" Width="503px">
<FooterStyle BackColor="White" ForeColor="#000066" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
</div>
</form>
</body>
</html>
<script language="javascript" src="JScript.js"></script>
速度,急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1111
lingwu05() 我为什么要用key?那好象不是问题吧,你还是没有理解我代码的意义.
我自己做出来了,我把要进行修该的列变成模版列,然后在RowUpdating事件里写
TextBox tb=(TextBox)gv.Rows[e.RowIndex].Cells[2].FindControl("TextBox1");
tb.Text 这样就得到了,谢谢各位了.虽然没有人答对,但是分还是要给的,我会相应的给点分的
再谢!