2010-08-30 7 views
0

У меня есть grideview и 2 кнопки. Мне нужно показывать только кнопки, когда gridview имеет выбранный элемент. Мой код выглядит следующим образом:проверка, если gridview имеет выбранный элемент

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) 
    { 
     btactivate.Visible = true; 
     btdeactivate.Visible = true; 
    } 
    else 
    { 
     btactivate.Visible = false; 
     btdeactivate.Visible = false; 
    } 
} 

Но проблема у меня сейчас является то, что только тогда, когда я выбираю второй раз, когда элемент в GridView кнопки появляются. Мне нужно, чтобы кнопки показывались, когда я выбираю первый раз. Я попытался изменить выбранный индекс на «-0», но это показывает кнопки все время (даже если у меня нет чего-то выбранного). Кто-нибудь может помочь?

ответ

0

Попробуйте это:

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

Спасибо, это сработало! – CSharpSuzie

Смежные вопросы