2015-12-25 2 views
0

У меня есть текстовое поле со своим ID txtPassword.Доступ к текстовому полю в gridview и его значение

<FooterTemplate> 
      <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox> 
      <asp:Button ID="PasswordGenerator" runat="server" Text="Generete new Password" OnClick="PasswordGenerator_Click" /> 
</FooterTemplate> 

и когда пользователь нажимает на «Generete нового пароля» его идет к этой функции, а в текстовом поле txtPassword будут заполнены automatcly с сгенерированным паролем.

protected void PasswordGenerator_Click(object sender, EventArgs e) 
{ 
    int length = 6; 
    const string valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
    StringBuilder res = new StringBuilder(); 
    Random rnd = new Random(); 
    while (0 < length--) 
    { 
     res.Append(valid[rnd.Next(valid.Length)]); 
    } 

    ((TextBox)GridView1.FindControl("txtPassword")).Text = res.ToString(); 
} 

но я не могу получить доступ к нему из кода C#. поэтому я ищу, и я обнаружил, что мне нужно делать с findcontrol(), но он все еще не работает.

, пожалуйста, помогите :)

спасибо!

+0

Если вы просто положить txtPassword, делает шоу что-то Intellisense? – Ian

+0

нет, его не показывать. и причина в том, что txtPassword находится под тегом Gridview. – Eitanmg

+0

Если это в gridView и имя идентификатора указано, то findControl должен вернуть элемент управления. Но это не так. Я не могу не подозревать, что элемент управления на самом деле не находится в gridview, или если он есть, у него другое имя. Возможно, вы можете проверить элементы управления, которые GridView имеет, проверив Property «Элементы управления» GridView. Вы могли видеть, какие элементы управления есть у GridView ... – Ian

ответ

0

Вот правильный путь:

TextBox Password = GridView1.FooterRow.FindControl("txtPassword") as TextBox; 

if (Password != null) 
    Password.Text = "Hello"; 
Смежные вопросы