使用jquery在同一页面中的两个用户控件不起作用

时间:2015-12-25 13:06:18

标签: javascript jquery asp.net user-controls

我在Mizan.aspx中有两个相同的用户控件。我想使用自动完成

belHesapPlani中的

txtHesapKodu(它是用户控件)。当我在

中写任何东西时

第一个用户控制文本框,它可以工作,一切都很好。另一个

手,当我在第二个用户控件文本框中写入时,它不起作用而不是

运行使用的GetHesapKodu函数。

      $(document).ready(function () {
          SearchText();
          //$('txtHesapKodu').keyup(function () {
          //    SearchText();
          //});
      });

      function SearchText() {
          $("#txtHesapKodu").autocomplete({
              source: function (request, response) {
                  //alert("user controldeyizx");
            //      alert(document.getElementById('txtHesapKodu').value.uniqueID);
                  $.ajax({
                      type: "POST",
                      contentType: "application/json; charset=utf-8",
                      url: "../../jqueryTEST.asmx/GetHesapKodu",
                      //url: "belHesapPlani.ascx/GetHesapKodu",
                      data: "{'hesapKodu':'" + document.getElementById('txtHesapKodu').value + "'}",
                      dataType: "json",
                      success: function (data) {
                          response(data.d);
                      },
                      error: function (result) {
                          alert("No Match");
                      }
                  });
              }
          });
      }

Mizan.aspx   

            <td>
                <uc12:belHesapPlani runat="server" ID="belHesapPlani1" ClientIDMode="AutoID" Enabled="true" />
            </td>
        </tr>

            <tr>
                <td>
                    <uc12:belHesapPlani runat="server" ID="belHesapPlani2" ClientIDMode="AutoID" Enabled="true" />
                </td>

[System.Web.Script.Services.ScriptMethod]
[WebMethod(EnableSession = true)]
public List<string> GetHesapKodu(string hesapKodu)
{
    DataTable dt = new MH_HESAP_PLANI().GetAllByHesapNameIdKurum(1, "HESAP_KODU", hesapKodu, null);

    List<string> strList = new List<string>();
    foreach (DataRow item in dt.Rows)
    {
        strList.Add(item["NAME"].ToString());
    }

    return strList;
}

1 个答案:

答案 0 :(得分:0)

您正在#txtHesapKodu中过滤SearchText(),但请注意,ID和ID的#过滤器在整个网站中都是唯一的。因此,您不能在2个不同的用户控件中拥有具有相同ID的元素。请改用名称属性,然后过滤(Name=[txtHesapKodu])。