【问题标题】:Getting textbox.text in gridview auto generated edit control在gridview自动生成的编辑控件中获取textbox.text
【发布时间】:2014-04-02 15:48:26
【问题描述】:

您好,我在使用 gridview 中自动生成的编辑按钮时遇到问题。

我正在尝试从编辑文本框中获取用户名并将其插入到我的数据库中,如下所示:

<asp:TemplateField HeaderText="User Name">
<ItemTemplate>
    <asp:Label ID="UserNamelbl" runat="server" Text='<%# Eval("Username") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="UserNameEdit" Width="100" Text='<%# Eval("Username") %>' Enabled="true" runat="server"></asp:TextBox></EditItemTemplate>
</asp:TemplateField>

更新点击时发生的c#方法。

    protected void UsersGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{     

    GridViewRow row = UsersGridview.Rows[e.RowIndex];
    Connect c = new Connect("EdenSiteDB.accdb");
    string updatesql = "UPDATE Users Set Username= '" + ((TextBox)row.FindControl("UserNameEdit")).Text + "' , Email= '" + ((TextBox)row.FindControl("EmailEdit")).Text + "' , Admin= " + (((CheckBox)row.FindControl("IsAdminBoxEdit")).Checked).ToString() + " WHERE UserID= " + Session["UserId"].ToString() + ";";
    OleDbCommand updatecmm = new OleDbCommand(updatesql);
    c.TakeAction(updatecmm);

    string usersql = "SELECT * FROM Users;";
    dt = c.MakeConnection(usersql, "Users");
    UsersGridview.EditIndex = -1;
    DataBind();
}

运行时这是 updatesql:

updatesql = "UPDATE Users Set Username= 'edmx0' , Email= 'edmx0.et@gmail.com' , Admin= True WHERE UserID= 17;"

这些是之前的值。不是我刚输入的新的。

但是当我调试它时,我的 sql 不断出现初始用户名,而不是我刚刚输入的用户名。 我认为它当时与我的 gridview 绑定有关,但我不知道如何修复它。

任何帮助将不胜感激!

【问题讨论】:

    标签: c# asp.net gridview textbox aspxgridview


    【解决方案1】:

    你能否单步执行到 OleDbCommand 的断点并发布

    的结果
    updatesql
    

    在更新命令运行之前?

    【讨论】:

    • 我希望你是这个意思(用我假设你的要求更新了问题)
    猜你喜欢
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2010-09-10
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多