2012-04-24 8 views
10

Używam sqldatasource i GridView. Chcę uzyskać wartość komórki z GridView w zdarzenie RowDataBound ?, ponieważ nie mogę użyć e.RowIndex.Jak uzyskać wartość komórki w zdarzeniu związanym z wierszem danych? i jak sprawdzić, czy komórka jest pusta?

Jak sprawdzić w zdarzeniu aktualizującym, czy komórka jest pusta? Użyłem if != null, ale to nie zadziałało, więc muszę sprawdzić, czy jest puste.

dzięki

+0

dodać przykładowy kod, aby zobaczyć, co u zrobić z kodem – sharad

+0

nie jestem w domu i nie mam kodu, ale wziąłem wartość z kontrolą texbox komórki dla GridView następnie chekc if is! = null! . I po raz pierwszy nie wiem, co powinienem zrobić – Alexander

Odpowiedz

15

W RowDataBound zdarzeń, można uzyskać wartość komórki z GridView przy użyciu następującego kodu:

[] // coraz nazwa rfom szczególności rząd

string servicename = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name")); 

W zdarzeniu RowUpdating można sprawdzić, czy komórka jest pusta, czy nie, używając następującego kodu:

string servicename = grdvw_showdetails.DataKeys[row.RowIndex][1].ToString(); 

Powyższy kod wykorzystuje Datakey w zdarzeniu aktualizującym wiersz. Jeśli nie chcesz korzystać z datakey kod by sprawdzić specyficzne komórka jest pusta lub nie jest

TextBox txtaname = (TextBox)row.FindControl("txt_updname"); 

if(txtaname.text != null) 

EDIT:

Ta odpowiedź jest doskonała. Chciałbym jednak dodać trochę komentarza. Podczas sprawdzania danych komórek wiersza w ramach zdarzenia RowDatabound właściwość ItemArray wiersza o wartości DataItem nie jest bezpośrednio dostępna. Więc kiedy robimy coś takiego, to jest bezcelowe: string val = e.Row.Cells[2].Text.ToString(); i zgłasza błąd.

To gdzie pierwsza linia ta odpowiedź przychodzi. []

następujący ekran pokazuje drzewo/hierarchię właściwości bazowych rzędu, kiedy robisz zegarek w trybie debugowania.

enter image description here

+0

+1 do OP i @ giri. Nie wiem, co bym zrobił, gdyby nie wspólnota SO. Dobrze jest urodzić się później, wydaje się;) kiedy ludzie przeszli przez te ściany i znaleźli świetne odpowiedzi: D Właśnie udusiłem twoją odpowiedź, by dać jakiś efekt wizualny, jeśli nie masz nic przeciwko. – bonCodigo

+0

nie ma za co –

Powiązane problemy