我的GridView中一列命令列,编辑更新,点击编辑按钮后,会正常转为编辑状态,但是再点击更新按钮时,第一次点击,此行中所有输入框中的内容会清空,而且不会触发RowUpdating事件,第二次点击时才会触发RowUpdating事件.GridView中有两列是模板列,数据绑定也能正常显示.请问这种情况是什么原因呢
解决方案 »
- 在建立与服务器的连接时出错
- 怎么用javascript判断Textbox的内容是不是数值型
- tab页跳转
- 请问各位 借助expression encoder 开发的插件,必须在服务器上安装一次expression encoder 吗?
- 关于Cookie
- 关于PAGE类的重载和设计视图不能打开的问题
- 天拉。救救我。我要疯了
- 有哪位做过家庭账本/理财类的东东(asp.net)
- 关于一个并发的问题,想请教一下大侠们?
- ASP.NET 求个在web页面中用折线图动态显示数据库中某一数值型字段的变化情况的解决方法思路。
- C#如何使用正则表达式获取html标签内的指定内容
- asp.net中在后台获取前台html控件img的src
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Databind();
}
} //数据绑定
private void Databind()
{
FundsPlanManager funsPlanManager = new FundsPlanManager();
UserInfo userInfo = (UserInfo)Session["UserInfo"];
if (userInfo != null)
{
IList<FundsPlan> fundsPlan = funsPlanManager.GetListByDepartId(userInfo.Department.DepartId);
GridView1.DataSource = fundsPlan;
GridView1.DataBind();
}
}
public string GetScript(string name)
{
return string.Format("return confirm(\"确定删除此资金使用计划[{0}]吗?\");", name);
}
protected void Button1_Click(object sender, EventArgs e)
{
FundsPlan fundsPlan = new FundsPlan();
fundsPlan.AddTime = DateTime.Now;
fundsPlan.Amount = Convert.ToDecimal(txtAmount.Text.Trim());
UserInfo user=(UserInfo)Session["UserInfo"];
fundsPlan.DepartId = user.Department.DepartId;
fundsPlan.Name = txtName.Text.Trim();
fundsPlan.Paid = Convert.ToDecimal(txtPaid.Text.Trim());
fundsPlan.Res = txtRe.Text.Trim();
fundsPlan.UnPaid = Convert.ToDecimal(txtUnPaid.Text.Trim());
fundsPlan.UserId = user.UserId;
FundsPlanManager fundsPlangerManager = new FundsPlanManager();
int success=fundsPlangerManager.Add(fundsPlan);
if (success > 0)
{
Databind();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Databind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
FundsPlanManager funsPlanManager = new FundsPlanManager();
bool success=funsPlanManager.Delete(Convert.ToInt32(id));
if (success)
{
GridView1.EditIndex = -1;
Databind();
}
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Databind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
FundsPlan fundsPlan = new FundsPlan();
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
string name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.Trim();
decimal amount =Convert.ToDecimal(((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.Trim());
decimal paid = Convert.ToDecimal(((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.Trim());
decimal unpaid = Convert.ToDecimal(((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.Trim());
string res =((TextBox)GridView1.Rows[e.RowIndex].Cells[5].FindControl("txtEditRes")).Text.Trim();
DateTime addTime =Convert.ToDateTime(((Label)GridView1.Rows[e.RowIndex].Cells[6].FindControl("lblEditAddTime")).Text.Trim());
fundsPlan.PID = Int32.Parse(id);
fundsPlan.Name = name;
fundsPlan.Amount = amount;
fundsPlan.Paid = paid;
fundsPlan.UnPaid = unpaid;
fundsPlan.Res = res;
fundsPlan.AddTime = addTime;
FundsPlanManager m = new FundsPlanManager();
m.Update(fundsPlan);
GridView1.EditIndex = -1;
Databind();
}
前台代码:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="PID" onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="PID" HeaderText="ID" />
<asp:BoundField DataField="Name" HeaderText="付款用途" />
<asp:BoundField DataField="Amount" HeaderText="暂定额度" />
<asp:BoundField DataField="Paid" HeaderText="已付累计" />
<asp:BoundField DataField="UnPaid" HeaderText="未付" />
<asp:TemplateField HeaderText="说明">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Res") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditRes" runat="server" Height="65px"
Text='<%# Bind("Res") %>' TextMode="MultiLine" Width="233px"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="添加时间">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("AddTime") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblEditAddTime" runat="server" Text='<%# Bind("AddTime") %>'></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
<asp:CommandField SelectText="付款录入" ShowSelectButton="True" />
</Columns>
</asp:GridView>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" ForeColor="#333333" ShowFooter="True" DataKeyNames="ID"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating">