0

我正在我的 ASP.NET Web 窗体应用程序后面的代码中向页面方法发出 Ajax 请求,其中包含数据。我的 aspx 页面中有一个面板控件,但我无法从该页面方法及其 ID 中获取控件。我可以从Page_Load事件中得到它。我该怎么做才能从页面方法中获取面板控件,或者它是不可能的,或者可能是替代方法?

<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
    }
}
4

1 回答 1

0

您将无法做到这一点,WebMethod不会遵循与普通页面方法相同的流程。它甚至不是实例方法,而是静态的。

您必须在客户端返回信息并使用 javascript 在那里创建图像。

于 2013-05-31T16:12:45.250 回答