Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何使用try-and-catch处理SelectedIndexOutOfRange?_Asp.net_Visual Studio 2010_Gridview_Exception Handling_Datagridview - Fatal编程技术网

Asp.net 如何使用try-and-catch处理SelectedIndexOutOfRange?

Asp.net 如何使用try-and-catch处理SelectedIndexOutOfRange?,asp.net,visual-studio-2010,gridview,exception-handling,datagridview,Asp.net,Visual Studio 2010,Gridview,Exception Handling,Datagridview,我在Asp.net中有一个gridview和一个delete按钮。仅当从gridview中选择行时,“删除”才起作用。我想通过使网站更友好来防止网站崩溃。因此,如果用户没有选择行并按delete键,它将通过标签通知他们。是SelectedVlue还是SelectedRow 这就是我所尝试的: if (GridView1.SelectedValue == null) { int i = GridView1.SelectedIndex;

我在Asp.net中有一个gridview和一个delete按钮。仅当从gridview中选择行时,“删除”才起作用。我想通过使网站更友好来防止网站崩溃。因此,如果用户没有选择行并按delete键,它将通过标签通知他们。是SelectedVlue还是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";
        }

当未选择任何行时,
SelectedRow
null
。您还可以使用
SelectedIndex!=-1
。但是您正在检查
==null
而不是
!=空
无论如何,什么是错误的逻辑

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


您应该将代码替换为以下内容:

        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";
        }
试试这个:

if(GridView.SelectedRow != null)
{
    // proceed with your action
}
else
{    
    Label5.Text = "Oops, please select a row";
}

哦,是的,我是。但是你必须等待一定的时间才能接受答案,别担心:)你回答得太快了,而stackoverflow不喜欢它哈哈
if(GridView.SelectedRow != null)
{
    // proceed with your action
}
else
{    
    Label5.Text = "Oops, please select a row";
}