【问题标题】:Not able to get data in content page through javascript in asp.net无法通过asp.net中的javascript获取内容页面中的数据
【发布时间】:2011-09-01 11:36:09
【问题描述】:

我创建了一个小型 Web 应用程序来显示选定的员工数据。在这个应用程序中,我编写了一个 javascript。我创建了一个包含用户名详细信息的下拉框,每个用户前面都有一个复选框。这些用户名从数据库中获取。

我希望该经理下拉列表并选择他想查看详细信息的员工。我在javascript的帮助下做到了这一点,但问题是它成功地在下拉列表中显示用户名,当它与母版页分开时,但是当我将它与母版页合并时,意味着使它成为该母版页的内容页面它不会在下拉列表中显示用户名。

它显示为空白。我在哪里做错了。任何建议将不胜感激。
提前致谢。

【问题讨论】:

    标签: c# javascript asp.net web-applications


    【解决方案1】:

    正如 Pleun 所说,母版页将更改呈现给浏览器的 HTML 控件 ID。有几种方法可以解决这个问题如果您使用的是 asp.net 4,您可以指定客户端 ID,如下所示:

    <asp:Label Text="text" runat="server" ID="SomeID" ClientIDMode="Static" />
    

    这将维护呈现给浏览器的 ID。

    如果您是以前版本的 asp.net 用户,那么我倾向于使用 JQuery 来获取控件,例如:

    $("[id$='SomeId']")
    

    $= 表示以结尾。

    您还可以将用户服务器标记与您的 javascript 代码混合在一起,例如

    var control = document.getElementById("<% =SomeId.ClientId %>");
    

    asp.net 然后将渲染出它分配给具有服务器 ID SomeId 的控件的任何客户端 ID

    【讨论】:

    • 感谢您的回复。我试过了,但没有解决办法。实际上,我需要将 javascript 代码运行到 Masterpage 或内容页面。但它在单独的默认页面中成功运行。我认为我的内容页面代码无法获取通过 document.getElementById('ddlLoginName') 在 javascript 中定义的内容页面中的控件 ID。如果您对此有任何其他解决方案,请帮助我。
    【解决方案2】:

    母版页更改控件的名称:

    看看这里: http://www.asp.net/master-pages/tutorials/control-id-naming-in-content-pages-cs

    (不是您的问题 - 但也可以使用 ASP.NET 开箱即用地完成该功能,而无需自己编写 javascript)

    【讨论】:

      【解决方案3】:

      您需要在函数中提供控件的客户端 ID。 当您使用母版页时,您的控件的 id 会发生变化。 例如: Checkbox chktest 的 clientID 将是没有母版页的 chktest。但是在 masterpage 中,clientID 会更改为“ctl00_ContentPlaceHolder1_chktest”之类的内容

      因此,如果您在使用母版页时使用 chktest,javascript 将不会检测到,并且您的功能不会按预期工作。因此请使用控件的 clientId。

      【讨论】:

        猜你喜欢
        • 2011-05-03
        • 2011-02-28
        • 1970-01-01
        • 2021-08-10
        • 2019-01-10
        • 1970-01-01
        • 1970-01-01
        • 2011-09-12
        • 1970-01-01
        相关资源
        最近更新 更多