0

我在Asp.net中有一个 gridview 和一个删除按钮。仅当从 gridview 中选择一行时,删除才会起作用。我想通过使其更加用户友好来防止网站崩溃。因此,如果用户没有选择一行并按删除,它将通过标签通知他们。是SelectedVue还是SelectedRow

这是我尝试的:

if (GridView1.SelectedValue == null)
        {

            int i = GridView1.SelectedIndex;
            myDataSet.Tables["Records"].Rows[i].Delete();

            GridView1.DataSource = myDataSet;
            GridView1.DataBind();
        }
        else
        {
            Label5.Text = "Oops, please select a row";
        }
4

3 回答 3

0

尝试这个:

if(GridView.SelectedRow != null)
{
    // proceed with your action
}
else
{    
    Label5.Text = "Oops, please select a row";
}
于 2013-05-03T12:05:43.983 回答
0

SelectedRow是当null没有选择行时。您也可以使用SelectedIndex != -1. 但是您正在检查== null而不是!= null无论如何是错误的逻辑。

if (GridView1.SelectedRow != null)
{
    // ...
}
else
{
    Label5.Text = "Oops, please select a row";
}

或者

if (GridView1.SelectedIndex != -1)
{
    // ...
}
else
{
    Label5.Text = "Oops, please select a row";
}
于 2013-05-03T11:47:15.507 回答
0

你应该用这个替换你的代码:

        if (GridView1.SelectedRow != null && GridView1.SelectedIndex != -1)
        {
            int i = GridView1.SelectedIndex;
            myDataSet.Tables["Records"].Rows[i].Delete();

            GridView1.DataSource = myDataSet;
            GridView1.DataBind();
        }
        else
        {
            Label5.Text = "Oops, please select a row";
        }
于 2013-05-03T11:48:26.697 回答