2013-05-31 58 views
0

我在我的ASP.NET Web窗體應用程序中的代碼中向頁面方法發送了一個Ajax請求。我在我的aspx頁面中有一個Panel控件,但是我無法使用它的ID從該Page Method中獲得控件。儘管如此,我可以從Page_Load事件中得到它。我能做些什麼來從頁面方法獲得面板控件,或者它不可能或可能是替代方法?從頁面添加ASP.NET圖像方法

<asp:Panel ID="pnlImages" runat="server"></asp:Panel> 

<script type="text/javascript"> 
    function GetProductId() { 
     $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GenerateQrCode", 
      data: "{'Products':" + JSON.stringify(data) + "}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert(xhr.status); 
       alert(xhr.responseText); 
       alert(thrownError); 
      }, 
      success: function (msg) { 
       alert('Success'); 
      } 
     }); 
    } 
</script> 
[WebMethod] 
public static void GenerateQrCode(List<Product> Products) 
{ 
    foreach(var product in Products) 
    { 
     string qrCodeLocation = products.Where(pid=>pid.ProductId == product.ProductId).Select(s=>s.QrCode).FirstOrDefault().ToString(); 

     Image image = new Image(); 
     image.ID = product.ProductId.ToString(); 
     image.ImageUrl = qrCodeLocation; 
     //Cannot get 'pnlImages' here 
    } 
} 

回答

0

你將不能夠做到這一點,WebMethod不遵循相同的流程正常的頁面的方法。它甚至不是實例方法,而是靜態的。

你必須返回客戶端的信息,並使用JavaScript在那裏創建圖像。

+0

謝謝。我有我的第二選擇。相當牽強,但無論如何,我可以通過asp.net的'Button'控件和它的'OnClick'事件將JSON(我的數據)傳遞給服務器? – n00ber

+0

@ user2417645:你可以,但我不確定那是如何連接到這個問題。 –

+0

它與問題沒有關係,但它是我的目標。你願意我創造另一個問題嗎?如果我的問題得到解答,我會很樂意這樣做。 – n00ber