2010-03-19 63 views
0

我有一个带有两个按钮的aspx页面,其中一个按钮具有应点击时应运行的函数的OnClick属性。当点击另一个按钮时,if语句会检查页面是否是回发,如果是,则运行一些需要在点击该按钮时运行的语句。该回发按钮正常工作。然而,另一个按钮,当它被点击时,它应该调用的函数永远不会执行,而if(Page.IsPostBack)中的语句会被执行。我能做些什么来解决这个问题?有没有办法让调用函数的按钮不做回发?即使当按钮属性OnClick设置为该功能时,按钮点击仍不会调用功能

+2

你可以发布代码吗?无论是在aspx页面还是后面的代码。 – ChrisF 2010-03-19 20:02:39

+0

你想要异步回发吗? (AJAX) – 2010-03-19 20:05:03

+0

我不想要一个按钮点击来执行回发,我只是希望在按钮的OnClick属性中指定的函数得到执行。 – adhanlon 2010-03-19 20:06:45

回答

1

[剪断 - 不是问题的一部分]

编辑:下面是一个使用一个UpdatePanel在asych方式调用按钮的OnClick函数的一个例子:

的.aspx

<form id="form1" runat="server"> 
    <asp:ScriptManager runat="server"></asp:ScriptManager> 
    <asp:UpdatePanel ID="upTest" runat="server"> 
     <ContentTemplate> 
      <asp:Button ID="btnTest" Text="Test" OnClick="Delete_Click" runat="server" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 

.aspx.cs

protected void Delete_Click(object sender, EventArgs e) 
{ 
    // Whatever you want to do. 
} 

编辑2:这里有一个答案,我最近给该figures out what control has caused a postback

+0

OnClick属性设置为“Delete_Click”,并且我有一个方法protected void Delete_Click()aspx.cs文件 – adhanlon 2010-03-19 20:09:58

+0

“OnClick”是一个服务器端函数,预计将作为回发的一部分进行调用。如果你不想要一个完整的回发,那么你应该看一个'UpdatePanel'进行异步调用。 – CAbbott 2010-03-19 20:13:02

+0

我想出了我的问题。 Page_Load函数在我的Delete_Click函数之前被调用。并且在Page_Load函数中,我必须有if(Page.IsPostback){//做东西然后重定向页面},这就是为什么Delete_Click没有被调用。我可以使用对象发件人来确定哪个按钮导致回发? – adhanlon 2010-03-19 20:35:17