2016-02-07 61 views
0

我意識到這是一個常見錯誤,我在網上提供了針對此問題的許多修補程序,但尚未找到解決方案。文本框(以及其他控件) - 「對象未設置爲實例....」

我開發了一個winform應用程序,它從外部網站獲取JSON。我點擊一個按鈕控制,該應用程序通過我的json serialiser方法並將結果發佈到文本框並附加到textarea。

public void RenderData(string buttonText) 
    { 

     if (buttonText == "Start") 
     { 
      EquationData deserializedData = getData("http://test.ethorstat.com/test.ashx"); 

      var processed = new ProcessEquation(); 
      int result = processed.Calculate(deserializedData); 

      string res = deserializedData.parm1 + " " + deserializedData.op + " " + deserializedData.parm2 + 
       " = " + result; 
      TextBoxResult.Text = res; 

      equation.Append(" " + deserializedData.parm1 + " " + deserializedData.op + " " + deserializedData.parm2 + 
       " = " + result + '\n'); 
      TextAreaResults.Value = equation.ToString(); 
     } 
    } 

這工作得很好,因爲它是。但是需求發生了變化,因爲應用必須每秒輪詢一次數據。因此,我創建了一個由jquery腳本調用的wcf Web服務,以便每秒運行一次。

問題是我的控件 - textbox和textboxarea - 生成{「對象引用未設置爲對象的實例。」}。我的假設是,這些控件現在沒有被加載,我從JQuery的ajax函數(?)調用方法。

$(document).ready(function() { 

//while ($('#eThorButton').text != "Stop") { 
if ($('#eThorButton').click) { 
    $.ajax({ 
    url: 'Service/eThorService.svc/getUpdate', 
    method: 'get', 
    dataType: 'json', 
    success: function(){ 
     alert("success"); 
    }, 
    error: function (err) { 
     alert(err); 
    } 
}) 
//delay(1000); 

} 

});

當我運行它時,我的控件在intellisense中顯示,當然在Default.aspx上顯示。我怎樣才能解決這個問題?

編輯

我實例化一個新的文本框解決了「對象未設置...」的問題:

public partial class _Default : Page 
{ 
    public static StringBuilder equation = new StringBuilder(); 
    public TextBox TextBoxTest = new TextBox(); 

當我調試,並通過值步驟設置,文本框呈現,但文本框是空的。我如何解決這個問題?

回答

0

使您的方法變爲靜態並添加註釋[WebMethod]並返回結果列表。

[System.Web.Services.WebMethod(EnableSession=true)] 
public static List<string> RenderData(string buttonText) 
{ 
     // return result here 
} 

傳遞帶有數據的參數:{buttonText:yourvalue} to $ .ajax call。並通過javascript更改成功功能並將值分配給客戶端的控件。

success : function(msg){ 
     if(msg.d!=null){ 
      $('#<%=TextBoxResult.ClientID%>').val(msg.d[0]); 
} 
} 
相關問題