2013-10-03 25 views
0

我正在使用ASP控件的RadioButtonList,如下所示,使用選定的單選按鈕的值,然後執行一些操作。當調用代碼完成時,服務器似乎將頁面重新發送回客戶端,因爲客戶端能夠在「新」頁面之間進行導航,無論我做了什麼修改和上一頁。ASP.NET服務器不重新發送頁面到客戶端上C#WebMethod

<asp:RadioButtonList ID="RadioListID" runat="server" AutoPostBack="true"  
          OnSelectedIndexChanged="RadioListID_SelectedIndexChanged"> 
     <asp:ListItem id="OneDayRadioBtn" runat="server" Value="1-Day" /> 
     <asp:ListItem id="TwoDayRadioBtn" runat="server" Value="2-Day" /> 
</asp:RadioButtonList> 

我不得不切換到正規的無線輸入並以這種方式實現它們:

<body> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" 
EnablePartialRendering="true" /> 
     <!-- Other Stuff --> 

<input type="radio" name="radioList" checked onchange="OneDayChecked()"> 1-Day 
<input type="radio" name="radioList" onchange="ThreeDayChecked()"> 3-Days 

...

<script type="text/javascript"> 
     function OneDayChecked() { 
      alert("We do get inside!"); 
      PageMethods.setTimeFilter(1); 
     } 

...返回該服務器上

[WebMethod] 
public static void setTimeFilter(int filterIndex) 
{ 
    //my code to change text on the client aspx page 
} 

WebMethod執行後,客戶端p年齡保持不變。我如何讓服務器重新發送頁面給客戶端?或者我能做些什麼來更新客戶端?我已經嘗試通過元數據刷新客戶端:<meta http-equiv="refresh" content="10">。我猜有服務器端解決方案,但不知道

回答

0

你在這裏做的是對服務器的AJAX(異步)調用。這不會更新您的頁面,這正是這裏所期望的。 Ajax調用在後臺完成,並且不會影響客戶端。
如果你想用Page Method做到這一點,那麼你需要從它返回一些東西,捕獲那些導致你的Javascript代碼,然後操縱客戶端的HTML。

+0

所以,我會改變我的WebMethod的返回類型爲一個字符串,例如,返回的javascript被執行,會得到自動執行還是需要從其他地方調用? – fifamaniac04

相關問題