2009-12-27 3 views
4

i m с использованием родительской сетки дочернего элемента и на дочерней сетке i m doing Показать/скрыть бросил java-скрипт. и ребенок сетки я связать во время выполнения с Templatecolumns какНайти элемент управления внутри Grid Row

GridView NewDg = new GridView(); 
NewDg.ID = "dgdStoreWiseMenuStock"; 

TemplateField TOTAL = new TemplateField(); 
TOTAL.HeaderTemplate = new BusinessLogic.GridViewTemplateTextBox(ListItemType.Header, "TOTAL",e.Row.RowIndex); 
TOTAL.HeaderStyle.Width = Unit.Percentage(5.00); 
TOTAL.ItemTemplate = new BusinessLogic.GridViewTemplateTextBox(ListItemType.Item, "TOTAL", e.Row.RowIndex); 
NewDg.Columns.Add(TOTAL); 

NewDg.DataSource = ds; 
NewDg.DataBind(); 


NewDg.Columns[1].Visible = false; 
NewDg.Columns[2].Visible = false; 

System.IO.StringWriter sw = new System.IO.StringWriter(); 
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); 
NewDg.RenderControl(htw); 

Теперь у меня есть один TextBox внутри сетки под названием «TOTAL» Я хочу найти этот TextBox и хотите получить его значение.

Как это можно получить?

+0

, как это возможно? – user239146

ответ

2

Как вы знаете, вы можете получить значение TextBox, например, для первой строки и первой ячейки:

((TextBox) dgdStoreWiseMenuStock.Rows[0].Cells[0].Controls[1]).Text; 

или изменить индекс контроля поставить 0, если выше линии dosen't работы.

4

Вы можете получить контроль над TextBox внутри соответствующей ячейки GridView, используя Controls свойство или FindControl(string id) метод:

TextBox txtTotal = gv.Rows[index].cells[0].Controls[0] as TextBox; 

или

TextBox txtTotal = gv.Rows[index].cells[0].Controls[0].FindControl("TOTAL") as TextBox; 

, где индекс может быть 0 для первого строки или итератора внутри цикла for.

В качестве альтернативы, вы можете использовать цикл Еогеасп по строкам в GridView по:

foreach(GridViewRow row in gv.Rows) 
{ 
    TextBox txtTotal = row.cells[0].Controls[0].FindControl("TOTAL") as TextBox; 
    string value = txtTotal.Text; 

    // Do something with the textBox's value 
} 

Кроме того, вы должны иметь в виду, что, если вы создаете GridView динамически (а не декларативно в веб-форме), вы не сможете получить этот контроль после обратной передачи страницы.

Существует большое 4 Ребята из Rolla статьи по теме: Dynamic Web Controls, Postbacks, and View State

1

Try This

TextBox txtTotal = (TextBox)gv.Rows[index].cells[0].FindControl("TOTAL"); 
string value = txtTotal.Text; 
Смежные вопросы