【问题标题】:Access a control in master page using javascript within the master page itself使用母版页本身内的 javascript 访问母版页中的控件
【发布时间】:2010-09-18 23:10:49
【问题描述】:

如何使用 javascript 访问母版页中的控件?母版页由一个搜索文本框组成,在控件的按键事件中,我调用母版页的内联 JavaScript 函数。我在那个javascript函数的文本框中得到了输入的值。我试过给 document.getElementById("").value 以及 document.getElementById("txtSearch").value。两者都显示错误。我必须从母版页本身访问文本框控件!

【问题讨论】:

  • 您遇到什么错误?什么浏览器版本?
  • 我正在使用 IE 8 浏览器。同时指定此代码 document.getElementById("txtSearch").value;我在浏览器中收到“需要对象错误”作为客户端错误消息。在指定 document.getElementById("").value 时,我收到“源代码不可用”警报消息,单击“确定”会显示服务器端错误“无法修改控件集合,因为控件包含代码块(即 )。'
  • 我指定了 document.getElementById("ct100_txtSearch").value。只是临时修复!!但是任何人都请建议如何使用代码动态获取此 ID。我通过查看生成的页面的来源得到了这个。
  • @Banupriya - 如果您将在母版页中显示标记,也许有人可以帮助您..
  • 这是标记

标签: asp.net


【解决方案1】:

我认为您在评论中显示的内容中缺少一些重要的标记。我试过了,下面的代码有效。看看吧,也许你会发现你的问题在哪里;否则,请说明您的标记有何不同。

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplicationDummy.SiteMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function txtSearch_KeyDown() {
            alert(document.getElementById('<%=txtSearch.ClientID %>').value);
        }
    </script>
</head>
<body>
    <form runat="server">
    <table width="226" border="0" cellpadding="2" cellspacing="2">
        <tr>
            <td width="150" align="right">
                <asp:TextBox ID="txtSearch" CssClass="para1Black" Width="180px" ValidationGroup="GlobalSearch"
                    runat="server" MaxLength="100" onkeydown="txtSearch_KeyDown()"></asp:TextBox>
            </td>
            <td width="62">
                <asp:ImageButton ID="imgbtnSearch" ToolTip="Click to search." ImageUrl="images/search2.jpeg"
                    CausesValidation="true" Width="22px" Height="22px" runat="server" ValidationGroup="GlobalSearch" />
            </td>
        </tr>
    </table>
    <asp:ContentPlaceHolder ID="MainContent" runat="server" />
    </form>
</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    相关资源
    最近更新 更多