2013-07-08 2 views
2

не может получить доступ к текстовому полю текста в TemplateFieldвернуть пустой текст текстового поля в TemplateField внутри GridView

.aspx:

<asp:TemplateField HeaderText="PIN" AccessibleHeaderText="PIN"> 
<ItemTemplate> 
    <asp:TextBox ID="txtPin" runat="server" Width="50px" MaxLength="4"></asp:TextBox> 
</ItemTemplate> 
</asp:TemplateField> 

код позади:

foreach (GridViewRow gr in grdPin.Rows) 
     { 
      TextBox lblDate = (TextBox)gr.Cells[0].FindControl("txtPin"); 
      string x = lblDate.Text; 
     } 

переменных х равна нуль.

+0

, на какое событие вы обращаетесь? –

ответ

3

С TemplateFields вы должны использовать FindControl на GridViewRow не клетки:

TextBox txtPin= (TextBox)gr.FindControl("txtPin"); 

Вы всегда должны использовать FindControl на NamingContainer из который вы хотите найти. Если элемент управления находится в GridViewRow, то это NamingContainer.

0

Вы должны использовать RowDataBound событий

if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
    // find and edit your control here 
// example 
    Label date = (Label)e.Row.FindControl("ControlID"); 
    } 
Смежные вопросы