0
我創建了一個應用程序獨立,它適用於我的回調。我正試圖將其整合到一個更大的應用程序中,並遇到一些問題。C#ASP回調添加類問題
我獨立的應用程序回調代碼:
public partial class Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
//unimportant specific code
//Get the Page's ClientScript and assign it to a ClientScriptManger
ClientScriptManager cm = Page.ClientScript;
//Generate the callback reference
string cbReference = cm.GetCallbackEventReference(this, "arg", "HandleResult", "");
//Build the callback script block
string cbScript = "function CallServer(arg, context){" + cbReference + ";}";
//Register the block
cm.RegisterClientScriptBlock(this.GetType(), "CallServer", cbScript, true);
}
public void RaiseCallbackEvent(string eventArgument)
{
//unimportant specific code
//This method will be called by the Client; Do your business logic here
//The parameter "eventArgument" is actually the paramenter "arg" of CallServer(arg, context)
GetCallbackResult(); //trigger callback
}
public string GetCallbackResult()
{
//unimportant specific code
return callbackMessage;
}
//more specific unimportant stuff
}
爲什麼我不只是類添加到我的更大的應用程序是這樣的:
public class My_App_ItemViewer : abstractItemViewer, System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
在Visual Studio中,我得到一個表示'page'接口名稱的錯誤。
在回調代碼本身,我得到一個錯誤的地方說引用ClientScript「不能訪問靜態屬性‘clientSript’在非靜態上下文」。
我真的不明白這些術語......我沒有一個CS學位或任何東西,因此,如果任何人都可以解釋這一點,那將是巨大的(甚至可能是最大的),謝謝!
我想我跟着你,但對我來說,「abstractItemViewer」是一個單獨的類。應用你的知識,看來錯誤在於c#正在將abstractItemViewer看作是一個接口而不是一個類。此外,它看起來像你只能有一個「繼承類」(這可能是你說的多重繼承的東西。所以,我怎麼能解決這個得到什麼?讓另一個階級「myCallBack函數」,並繼承my_app_viewer? – yoyo
所以,我只是去我的抽象類,並添加了「system.web.ui.page」繼承,它至少編譯。我正在做一些測試,看看它是否會實際工作... – yoyo
現在的問題是,實際回調的javascript腳本顯示在頁面源代碼。這是因爲我已經分離System.Web.UI.Page和System.Web.UI.ICallbackEventHandler到兩個不同的頁面? – yoyo