asp.net新增功能-如何从附加到按钮的事件处理程序调用方法

asp.net新增功能-如何从附加到按钮的事件处理程序调用方法,asp.net,ajax,Asp.net,Ajax,我的任务是完成一个75%完成的应用程序。它是使用三种我从未使用过的技术创建的(我是一个学期的学生):asp.net、ajax,它是用C#编写的 此应用程序的一个功能是生成html。我已经编写了一个方法,我们将其称为createHTML()。我已经将它作为一个独立的软件进行了测试,它运行良好。我现在想在实际的.net环境中运行它。当用户单击按钮btnCreate时,createHTML()方法(正在传递一个NameValueCollection“页面”)应该获取一组html并将其写入单独文件夹中的

我的任务是完成一个75%完成的应用程序。它是使用三种我从未使用过的技术创建的(我是一个学期的学生):asp.net、ajax,它是用C#编写的

此应用程序的一个功能是生成html。我已经编写了一个方法,我们将其称为createHTML()。我已经将它作为一个独立的软件进行了测试,它运行良好。我现在想在实际的.net环境中运行它。当用户单击按钮btnCreate时,createHTML()方法(正在传递一个NameValueCollection“页面”)应该获取一组html并将其写入单独文件夹中的文本文件

我的问题是:我如何做到这一点?我对VB.net有一些经验,通常我会进入设计模式,双击btnCreate,然后进入代码视图,我可以编写一个btnCreate\u click处理程序。然而,写原著的人把所有的按钮都隐藏了,我不知道如何找到它们。我试图用一个messagebox弹出窗口手动编写一个btnCreate_Click调用,但无法启动它

使这个问题更加复杂的是,最初的程序员在整个应用程序中都编写了asp:buttons和常规HTML按钮。我应该把它变成一个asp按钮,还是最好使用html按钮?我理解客户端使用一个和服务器端使用另一个的区别,但是当他同时使用这两个时,什么是最好的呢?当使用html时,这就是ajax的用武之地吗

为这个问题的简单性道歉,但它让我发疯

编辑:

显然,我太罗嗦了。以下是按钮的编码方式:

<button id="createButton" class="ui-state-default ui-corner-all">Create</button>
创建
哪一个是原始的html按钮(同样,在本例中我使用AJAX)? 或者我应该这样做:

<asp:Button ID="createButton" class="blah-blah-ui" PostBackUrl=".../somepage.aspx" runat="server" text="create" />?
如果我使用asp按钮(在我的AJAX级别上,读:none可能是最好的),我如何调用我在单独的代码隐藏页上的方法

如果我的方法在“modify.aspx.cs”中被称为showMessage(),那么如何调用此showMessage()方法

编辑第二条:


根据我收到的答复,我走上了正确的道路。问题是,onclick不起作用。我找到了原始编码者隐藏所有按钮的地方,所以我让它们可见。在“创建”按钮的“属性”窗口中,OnClick甚至不是一个选项。唯一接近这一点的选项是OnClientClick,我认为它适用于javascript?

我认为您应该坚持使用asp:按钮-请注意,这将导致每次单击时重新加载页面,使用Ajax路径可以避免这一点,但实现您想要的可能会稍微困难一些

您需要连接代码来处理按钮单击。最简单的方法是像这样使用OnClick属性

<asp:Button ID="createButton" class="blah-blah-ui" runat="server" Text="create" OnClick="createButton_Click" />
protected void createButton_Click(object sender, EventArgs e){}

在这个处理程序中,你可以做你想做的任何事情。

我想说的是,你应该坚持使用asp:按钮——请注意,这会导致每次单击时重新加载页面,使用Ajax路径可以避免这一点,但实现你想要的可能会稍微困难一些

您需要连接代码来处理按钮单击。最简单的方法是像这样使用OnClick属性

<asp:Button ID="createButton" class="blah-blah-ui" runat="server" Text="create" OnClick="createButton_Click" />
protected void createButton_Click(object sender, EventArgs e){}

在这个处理程序中,你可以做你想做的任何事情。

如果你可以在(c#)代码后面发布你的标记和代码,那就太好了。我真的无法理解你的问题。我试图在编辑中更好地解释。实际上,我只需要知道从单独的aspx页面和事件处理程序中调用方法的语法。如果您可以在(c#)代码后面发布标记和代码,那就太好了。我真的无法理解你的问题。我试图在编辑中更好地解释。实际上,我只需要知道从单独的aspx页面和事件处理程序中调用方法的语法。很高兴看到我的思路是正确的。就目前情况而言,我就是这么做的,我所要做的就是:MessageBox.Show(“Clicked!”);在处理器内部。但是什么也没发生,它只是转到回发URL。然后我取出回发,出于某种原因,它试图转到一个不存在的“创建”页面。我想在代码的其他地方还有一些我看不到的东西……您使用的是asp.net,messagebox.show是windows窗体。在asp中不能这样做。你必须发出javascript警报。我想只要我引用windows.forms(使用System.windows.forms),我就可以了?当我尝试在处理程序中使用警报时,我得到“名称‘警报’在当前上下文中不存在”…@mrwienerdog Bex是正确的,您不能在asp.net站点中使用messagebox.show-仅当您正在开发Windows窗体应用程序(即桌面应用程序)时。您也不能使用JavaScript警报,因为它是客户端而不是服务器端。你想干什么?如果您只是想证明它是有效的,那么在页面上放置一个标签并在处理程序中更改其文本,或者运行调试器并设置断点。您可以通过执行以下操作来注入客户端警报:ScriptManager.RegisterStartupScript(page,page.GetType(),“alert('hello');”,script,true);但我想你已经解决了你的问题?很高兴看到我走上了正确的道路。就目前情况而言,我就是这么做的,我所要做的就是:MessageBox.Show(“Clicked!”);在处理器内部。但是什么也没发生,它只是转到回发URL。然后我取出回发,出于某种原因,它试图转到一个不存在的“创建”页面。我想在代码的其他地方还有一些我看不到的东西……您使用的是asp.net,messagebox.show是windows窗体。在asp中不能这样做。你必须发出javascript警报。我想只要我引用windows.forms(使用System.windows.forms),我就可以了?当我尝试在处理程序中使用警报时,我得到“名称‘警报’在当前上下文中不存在”…@mrwienerdog Bex是正确的,您不能在asp.net站点中使用messagebox.show-仅当您正在开发时