缺少 Javascript。 1 个主页和 2 个用户控件
Missing Javascript. 1 Main Page with 2 User Control
我有一个关于 ASP.net 用户控制的问题
举个例子,我有一个主页,里面有两个用户控件。
页面包含
主页:Survey.aspx
用户控件 1 : RadioButton.ascx
用户控件2:CheckBox.ascx
在两个用户控件中,我添加了一个特定的 Javascript 来协助两个 CSS 功能。
问题是,当我 运行 调查页面时,假设我首先加载 RadioButton,然后加载 Checkbox。在复选框中添加的 javascript 不会在浏览器中加载。 RadioButton 仅 Javascript。当首先加载 Checkbox 然后再加载 RadioButton 时,反之亦然。
当我在源页面中检查 Survey.aspx 时,第二个加载的用户控件中的 Javascript 似乎未在该页面中注册。我还尝试在主页中加载 Javascript 全部,但没有成功。无法调用每个用户控件中的特定函数
用户控件通过 ASP.NET
的转发器事件绑定
如果您有任何想法,请告诉我。提前致谢。
在Survey.aspx
<asp:Repeater runat="server" ID="rptQuestion">
<ItemTemplate>
<uc:CheckBox ID="ucCheckBox" runat="server" Visible="False">
<uc:RadioButton ID="ucRadioButton" runat="server" Visible="False">
</ItemTemplate>
</asp:Repeater>
在ucCheckBox.ascx
<script type="text/javascript">
function checkchange(){
--some function---
}
</script>
在ucRadioButton.ascx
<script type="text/javascript">
function radChange(){
--some function--
}
</script>
所以如果我先加载复选框
在浏览器的源文件中,复选框中只存在 javascript,单选按钮用户控件中没有 javascript
这里有多个问题:
- 如果您将控件设置为
Visible="False"
,则它们根本不会被渲染 - 因此该控件也不会 javascript。
- 如果您将 javascript 放在 .ascx 中,它将为该控件的每个实例呈现。因此,您的页面中将有多个
radChange()
和 checkchange()
函数声明 - 每个都覆盖最后一个。我猜这不是你想要的。
当然你可以把你的 javascript 直接放在 aspx-markup 中,这会起作用。
我有一个关于 ASP.net 用户控制的问题
举个例子,我有一个主页,里面有两个用户控件。
页面包含
主页:Survey.aspx
用户控件 1 : RadioButton.ascx
用户控件2:CheckBox.ascx
在两个用户控件中,我添加了一个特定的 Javascript 来协助两个 CSS 功能。
问题是,当我 运行 调查页面时,假设我首先加载 RadioButton,然后加载 Checkbox。在复选框中添加的 javascript 不会在浏览器中加载。 RadioButton 仅 Javascript。当首先加载 Checkbox 然后再加载 RadioButton 时,反之亦然。
当我在源页面中检查 Survey.aspx 时,第二个加载的用户控件中的 Javascript 似乎未在该页面中注册。我还尝试在主页中加载 Javascript 全部,但没有成功。无法调用每个用户控件中的特定函数
用户控件通过 ASP.NET
的转发器事件绑定如果您有任何想法,请告诉我。提前致谢。
在Survey.aspx
<asp:Repeater runat="server" ID="rptQuestion">
<ItemTemplate>
<uc:CheckBox ID="ucCheckBox" runat="server" Visible="False">
<uc:RadioButton ID="ucRadioButton" runat="server" Visible="False">
</ItemTemplate>
</asp:Repeater>
在ucCheckBox.ascx
<script type="text/javascript">
function checkchange(){
--some function---
}
</script>
在ucRadioButton.ascx
<script type="text/javascript">
function radChange(){
--some function--
}
</script>
所以如果我先加载复选框
在浏览器的源文件中,复选框中只存在 javascript,单选按钮用户控件中没有 javascript
这里有多个问题:
- 如果您将控件设置为
Visible="False"
,则它们根本不会被渲染 - 因此该控件也不会 javascript。 - 如果您将 javascript 放在 .ascx 中,它将为该控件的每个实例呈现。因此,您的页面中将有多个
radChange()
和checkchange()
函数声明 - 每个都覆盖最后一个。我猜这不是你想要的。
当然你可以把你的 javascript 直接放在 aspx-markup 中,这会起作用。