开发者

checking if gridview has a selected item

I have a grideview and 2 buttons. I need to only show the buttons when the gridview has a selected item. My code looks like this:

protected void Page_Load(object sender, EventArgs e)
{
    btactivate.Visible = false;
    btdeactivate.Visible = false;
    //Show Activate and Deactivate Buttons only if an item in the gridview is selected
    if (GridView1.SelectedIndex != -1)
    开发者_StackOverflow社区{
        btactivate.Visible = true;
        btdeactivate.Visible = true;
    }
    else
    {
        btactivate.Visible = false;
        btdeactivate.Visible = false;
    }
}   

But the problem I have now is that only when I select the second time a item in the gridview the buttons show up. I need to have the the buttons show when I select the first time. I have tried changing the selected index to "-0" but that shows the buttons all the time (even when I dont have something selected). Can anyone please help?


Try this:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("Col1");
        dt.Columns.Add("Col2");
        dt.Columns.Add("Col3");

        for (int i = 0; i < 20; i++)
        {
            DataRow dr = dt.NewRow();
            dr["Col1"] = string.Format("Row{0}Col1", i + 1);
            dr["Col2"] = string.Format("Row{0}Col2", i + 1);
            dr["Col3"] = string.Format("Row{0}Col3", i + 1);
            dt.Rows.Add(dr);
        }

        GridView1.DataSource = dt;
        GridView1.DataBind();

        SetButtonState();
    }
}

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    SetButtonState();
}

private void SetButtonState()
{
    btactivate.Visible = GridView1.SelectedIndex > -1;
    btdeactivate.Visible = GridView1.SelectedIndex > -1;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜