情况是我想在我的html aspx文件(现有文件)中添加新按钮,但添加新按钮后,我一直在页面中的“/”应用程序中得到服务器错误(运行时错误)。
enter image description here
如果我删除了html标记,页面会恢复正常。
enter image description here
<asp:button id="btnSelect" runat="server" onclick="select_Click" text="Select"/>
然后,我添加内部html标记页面,例如下面,选择按钮将显示一个弹出消息选定的日期,这是我想要的。但我不能添加查询保存到SQL数据库中的选定日期在这里,因为选择_单击按钮事件是在html标记aspx页面。它看起来像这个按钮是在内容控制和我'我不允许在html标记aspx的现有文件中添加按钮。然后,当我在Example.aspx.cs页面中添加select_Click事件函数时,按钮将不执行任何操作。假设select_Click事件函数位于Example.aspx.cs文件中。
有人知道为什么会发生这种情况吗???注意:现有文件由以前的开发人员创建。
<script runat="server">
protected void submit_Click(object sender, EventArgs e)
{
string targetdate = Request.Form[TargetDate.UniqueID];
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Selected Date: " + targetdate + "');", true);
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="container">
<table id="table2" style="text-align: center; width: 100%">
<tr>
<td class="auto-style1" style="text-align: center; height: 51px;">
<asp:Label ID="lblTitle" runat="server" Text="Case Detail" Font-Bold="True" Font-Size="XX-Large" Font-Names="Verdana" Font-Underline="True"></asp:Label></td>
</tr>
</table>
</div>
</asp:Content>
谢谢你花时间阅读这篇文章。
1条答案
按热度按时间afdcj2ne1#
首先,将代码放在带有runat = server的脚本标记中没有任何优势。
你会得到100%相同的效果,如果你只是移动代码后面。
(and我建议你这样做)。
然而,仔细观察您的页面,我们发现它是一个"子"页面。(换句话说,您在这里有一个有效的母版页)。
记住,使用runat = server脚本所做的一切就是在后面的CODE中注入代码。
但是,这意味着您当然必须将那个好的旧的普通jane代码存根放在内容部分中,因为这也是当前页面被注入/放置的地方。
所以,真的,我建议你放弃这个想法,我想不出有什么好处。为什么要把代码放在标记中,当你将要并已经有一个代码隐藏在页面后面的时候?
现在,您所做的只是创建两个查看代码的位置,更糟糕的是,当您使用?
它所做的就是将代码移动到代码背后的位置!!!
所以你的例子应该是这样的:
换句话说,您必须将代码放置在"内容"内部,因为这是您所有标记和"代码"必须放置的地方,这实际上相当于将"东西"放置到常规(非主/子页面)上的"Form"标记区域中。
但是,正如我所指出的,真的吗?
只要把代码,剪切出来,右键单击,查看-〉代码,然后只是粘贴到后面的代码。(删除脚本标记)。
结果将是100%相同的操作。
因此,请记住,使用runat ="server"的"script"?
它所做的只是将代码移到模块背后的代码中,而您不会发现或看到任何差异(那么如果您只是将代码放在模块背后的代码中的话!)
但是,如前所述,既然您有一个主/子页面?
然后是标记和"子"页面的任何代码?
它必须被放置在内容模板的内部。
我还应该指出,在你的示例标记中,我没有看到一个按钮,无论如何都会运行代码存根-所以这是缺失的,这更没有意义。
假设您确实在内容模板中添加了一个按钮?
那么它肯定会有一个click事件来运行您所拥有的按钮单击代码存根。
因此,请记住适用于JavaScript代码的规则?
它们不适用于代码隐藏,因此script与script = runat = server的放置规则在这里根本不适用。
带有runat = server的脚本标记表示:
请将该服务器端移动到该给定页面的代码隐藏模块中。运行的代码将与您一开始将该服务器端代码直接放置到代码隐藏模块中时100%相同。(再次:100%相同的结果)。
因此,是的,您应该能够在内容模板中放置一个按钮。
像这样: