【发布时间】:2012-04-25 15:48:10
【问题描述】:
我是一个在工作实习的谦虚学生,我继承了一个“半成品”应用程序。它是用 C#(完全没有经验).NET(一点经验)编写的,使用 AJAX(没有经验)和 Jquery(一点经验)。我写了一个小方法来从网页中获取文本并将其解析为文本文档。我希望它在用户推送“发布”时触发。
按钮不会触发。我在我的“btnPublish_Click”处理程序中放置了一个断点,它甚至没有到达它。
我已经注册了按钮单击事件(我读到您需要在 C# 中执行此操作):
namespace MaintainTenderFiles.ajax
{
public partial class publish : TendersPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
loadPendingTenders();
preloadTender();
btnPublish.Click += new EventHandler(this.btnPublish_Click);
}
else
{
//more code
然后对点击事件进行编码:
public void btnPublish_Click(object sender, EventArgs e)
{
String script = "alert('Clicked!!!');";
ScriptManager.RegisterStartupScript(this.Page, this.GetType(),
"alertScript", script, true);
}
当我点击该按钮时发生的所有事情就是将我带到一个名为“已发布”的页面。
为什么我不能触发事件?
编辑**
显然忘记在标记页面中包含按钮的代码:
<asp:Button ID="btnPublish" OnClick="btnPublish_Click"
CssClass="ui-state-default ui-corner-all" runat="server"
Text="Publish" CausesValidation="False" UseSubmitBehavior="False" />
【问题讨论】:
-
在后面的代码中编写 javascript 确实不是最佳实践。经典网络表单的工作方式让我感到恶心...... :(
-
我只是想在单击按钮以最终工作时弹出警报....我不会在其中包含 jscript。经典的网络表单让你生病是什么意思?我应该做些什么不同的事情?我只是在学习,而且对未来的最佳实践非常感兴趣。
-
网络表单的工作方式没有任何问题。一旦你理解了这个过程,它就完全有意义了。此外,当您像这样执行 ajax 时,在代码隐藏上注册 javscript 没有任何问题。
-
1.您只想在
btnPublishclick 处执行一些客户端代码吗? 2.你的标记文件.aspx是否包含btnPublish按钮或者你在.aspx.cs后面的代码中动态生成它? -
单击按钮时,该方法从填充的表单中获取信息,然后将其写入 html 文件,然后将其推送到等待推送到我们外部服务器的文件夹中。我的标记文件中确实有一个名为 btnPublish 的按钮,是的。