ASP.NET Listview.selectedindex属性变得疯狂
我正在从listview中删除单个数据库记录,删除后,我尝试使用listView1.selectedindex属性在listview中导航,但我注意到它突出显示了不正确的记录,例如,我将listView1.selectedindex设置为1,但它显示了索引为0的记录。怎么了?请帮忙ASP.NET Listview.selectedindex属性变得疯狂,asp.net,listviewitem,Asp.net,Listviewitem,我正在从listview中删除单个数据库记录,删除后,我尝试使用listView1.selectedindex属性在listview中导航,但我注意到它突出显示了不正确的记录,例如,我将listView1.selectedindex设置为1,但它显示了索引为0的记录。怎么了?请帮忙 protected void deleteButton_Click(object sender, EventArgs e) { int id = int.Parse(((Label)ListView1.Ite
protected void deleteButton_Click(object sender, EventArgs e)
{
int id = int.Parse(((Label)ListView1.Items[ListView1.SelectedIndex].FindControl("idLabel")).Text);
using (SqlConnection conn = new SqlConnection(connStr))
{
string Sql = "delete from Employee where id = @id";
conn.Open();
using (SqlCommand dCmd = new SqlCommand(Sql, conn))
{
dCmd.Parameters.AddWithValue("@id", id);
dCmd.ExecuteNonQuery();
}
conn.Close();
}
BindDataFromBaseToListView();
}
BindDataFromBaseToListView方法看起来是这样的:
private void BindDataFromBaseToListView()
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlDataAdapter dAd = new SqlDataAdapter("select * from Employee", conn))
{
DataTable dTable = new DataTable();
dAd.Fill(dTable);
ListView1.DataSourceID = null;
ListView1.DataSource = dTable;
ListView1.DataBind();
}
conn.Close();
}
不使用deleteButton\u Click事件,您可以使用ListView的OnItemCommand事件获取所选行值并删除所需的项,如下面的代码所示:
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "delete")
{
int id = 0;
if(int.TryParse((e.Item.FindControl("idLabel") as Label).Text, out id))
{
using (SqlConnection conn = new SqlConnection(connStr))
{
string Sql = "delete from Employee where id = @id";
conn.Open();
using (SqlCommand dCmd = new SqlCommand(Sql, conn))
{
dCmd.Parameters.AddWithValue("@id", id);
dCmd.ExecuteNonQuery();
}
conn.Close();
}
BindDataFromBaseToListView();
}
}
}
控件上的元素将如下所示:
<asp:ListView ID="ListView1" runat="server" OnItemCommand="ListView1_ItemCommand" .. >
...
<ItemTemplate>
<asp:Button runat="server" CommandName="delete" Text="Delete" ID="DeleteButton" />
...
如果你还有问题,请告诉我