2015-10-15 9 views
0

У меня возникли проблемы с моим кодом. Я пытаюсь показать другую картинку для каждого случая. Но код кажется ошибочным, я довольно новичок в C# и ASP.net, поэтому я легко теряюсь. Вот часть кода, который выходит из строя:RowIndex вне допустимого диапазона

protected void OnRowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     GridViewRow row = GridView1.Rows[e.RowIndex]; 
     string Class = (e.Row.FindControl("txtClass") as TextBox).Text; 
     HtmlControl htmctrl = e.Row.FindControl("imgid") as HtmlControl; 
     switch (Class) 
     { 
      case "A1": 
       { 
        string Logo = @"C:\Users\Rudra\documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\Images\Box_Blue.png"; 
        htmctrl.Attributes.Add("src", Logo); 
        break; 
       } 
      case "A2": 
       { 
        string Logo = @"C:\Users\Rudra\documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\Images\Box_Green.png"; 
        htmctrl.Attributes.Add("src", Logo); 
        break; 
       } 
      case "A3": 
       { 
        string Logo = @"C:\Users\Rudra\documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\Images\Box_Red.png"; 
        htmctrl.Attributes.Add("src", Logo); 
        break; 
       } 
      default: 
       { 
        string Logo = @"C:\Users\Rudra\documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\Images\not-found.png"; 
        htmctrl.Attributes.Add("src", Logo); 
        break; 
       } 
     } 
    } 

Катастрофа происходит на первой линии GridViewRow row = GridView1.Rows[e.RowIndex];. RowIndex не распознается (не отображается на intellisense). Если вы видите, где я пошла не так, почему это происходит, и как исправить это, я буду вечно благодарен.

+1

Вы можете закомментировать эту строку 'GridViewRow строку = GridView1.Rows [e.RowIndex];' у вас есть это обязательно, вы не используете переменную '' строка '' в любом месте 'OnRowDataBound', за исключением того, что присваиваете ей индекс строки. – Prabhat

+0

Спасибо большое! Кажется, я вижу, где это происходит. –

ответ

1

Вам не нужно конвертировать

GridViewRow row = GridView1.Rows[e.RowIndex]; 

Вместо этого вы можете непосредственно использовать его в качестве

GridViewRow row = e.Row;