Предположим, я создал пользовательский элемент управления, который содержит два текстовых поля, одну кнопку

 --Start UserControl UserDetails--
 <asp:TextBox runat="server" id="txtName"></asp:TextBox>
 <asp:TextBox runat="server" id="txtAddress"></asp:TextBox>
--End UserControl UserDetails-

В aspx, если я использую тот же пользовательский элемент управления,

<uc1:UserDetails runat="server" ID="UserDetails1" />
  1. как получить доступ к txtName с помощью идентификатора элемента управления пользователя UserDetails1?
  2. Как мне заставить $('#UserDetails1').val() вернуть значение txtName?
1
Psb 12 Дек 2016 в 09:12

3 ответа

Лучший ответ

Просто добавьте общедоступное свойство для вас TextBox в свой пользовательский код управления позади

public TextBox Name
{
    get { return txtName; }
    set { txtName = value; }
}

Теперь вы можете получить доступ к своему TextBox так:

<uc1:UserDetails runat="server" ID="UserDetails1" />

    <script>
        $(function () {
            $("#<%= UserDetails1.Name.ClientID%>").val("set you text here");
            //or
            var name = $("#<%= UserDetails1.Name.ClientID %>").val();
        });
    </script>
1
G Ravinder 12 Дек 2016 в 07:05

Попробуйте это, используя Jquery

$("[id$='txtName']").val();
$("[id$='txtAddress']").val(); 
3
Vishal Surjuse 12 Дек 2016 в 06:45

Используйте ключи данных внутри ваших текстовых полей.

      --Start UserControl UserDetails--
     <asp:TextBox runat="server" id="txtName" data-key="name"></asp:TextBox>
     <asp:TextBox runat="server" id="txtAddress" data-key="address"></asp:TextBox>
    --End UserControl UserDetails-

<uc1:UserDetails runat="server" ID="UserDetails1" data-usercontrol = "UserDetails1" />

В jquery,

$("[data-usercontrol='UserDetails1']").find("[data-key='name']").val();
$("[data-usercontrol='UserDetails1']").find("[data-key='address']").val();

Вы можете использовать идентификатор селектора. Но так как вы использовали asp.net, он может отображаться с другим идентификатором в HTML.

Надеюсь это поможет!

0
Anoop H.N 12 Дек 2016 в 06:21