OnRow中的GridView删除未找到任何行
本文关键字:任何行 删除 中的 GridView OnRow | 更新日期: 2024-10-22 10:53:50
我在页面上有几个GridView,它们都有问题。当启动OnRowDeleting函数时,GridView(和发送方)找不到任何行。我以以下方式创建了GridView:
<asp:GridView ID="gridview9" runat="server"
DataKeyNames="id"
OnRowDeleting="deleteNumberFrom9"
AutoGenerateColumns="false"
CssClass="mGrid"
AlternatingRowStyle="alt">
<Columns>
<asp:boundfield datafield="product_key" headertext="PRODUCT KEY" ItemStyle-HorizontalAlign="Center" />
<asp:boundfield datafield="first_name" headertext="FIRST NAME"/>
<asp:boundfield datafield="last_name" headertext="LAST NAME"/>
<asp:boundfield datafield="email" headertext="EMAIL"/>
<asp:boundfield datafield="phone_number" headertext="PHONE NUMBER" ItemStyle-HorizontalAlign="Center" />
<asp:CommandField HeaderText="DELETE NUMBER" ShowDeleteButton="True" ItemStyle-HorizontalAlign="Center" DeleteText="Delete" />
</Columns>
</asp:GridView>
网格是从MySQL数据库填充的:
GridView gv = gridview9;
String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ToString();
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();
MySqlCommand command = new MySqlCommand(queryString, connection);
if (addPhone) command.Parameters.AddWithValue("@phone_number", "%" + phoneNumber + "%");
if (addEmail) command.Parameters.AddWithValue("@email", "%" + email + "%");
if (addFirstName) command.Parameters.AddWithValue("@first_name", "%" + firstName + "%");
if (addLastName) command.Parameters.AddWithValue("@last_name", "%" + lastName + "%");
if (addProductKey) command.Parameters.AddWithValue("@product_key", "%" + productKey + "%");
MySqlDataAdapter adapter = new MySqlDataAdapter(command);
System.Data.DataSet ds = new System.Data.DataSet();
adapter.Fill(ds);
gv.DataSource = ds;
gv.DataBind();
gv.Visible = true;
最后,onRowDelete函数是:
protected void deleteNumberFrom9(object sender, GridViewDeleteEventArgs e)
{
int SID = Convert.ToInt32(gridview9.DataKeys[e.RowIndex].Value);
String phone_number = e.Values[4].ToString();
deleteNumber(SID, phone_number, 9);
}
当我运行页面时,gridview9正确地返回2行,但当我在其中一行中单击delete并激发deleteNumberFrom9时,gridview 9.rows.Count为0而不是2。当我将发件人添加到监视列表并查看行计数时,它也是0。
删除数据库中的记录后,必须将数据重新绑定到GridView:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
protected void gv_Deleting(object sender, GridViewDeleteEventArgs e)
{
...
deleteNumber(SID, phone_number, 9);
BindData();
}
private void BindData()
{
...
gv.DataSource = ds;
gv.DataBind();
}