1

私は食べ物を注文するウェブプロジェクトを構築しています。asp.net ユーザー コントロールを使用して、ページの読み込み時に食品を追加します。それらはすべて一意の ID を持っています。しかし、jquery を使用して食品をカートに追加し、ユーザー コントロールの食品リストのすぐ隣に表示する必要があります。ここで、webmethod を呼び出すと、メソッドがダミー ページ、フォームを作成してコントロールを追加し、フォーム タグを削除して残りを ajax 呼び出しに返し、JS がコンテンツをページに追加します。しかし、すべてのユーザー コントロールが同じ ctl00_Panel1 ID を持っています。

これは私が私のwebmethodを呼び出す方法です

$.ajax({
            type: "POST",
            url: "kategorilistesi.aspx/RenderControl",
            data: "{id:'" + id + "',miktar:'" + miktar + "',baslik:'" + baslik + "',aciklama:'" + aciklama + "',tutar:'" + tutarf + "'}",
            //data: "{controlName:'" + "~/UserControls/ksepetitem.ascx" + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                $.unblockUI();
                $('#sepetxy').append(response.d);
            },
            failure: function (msg) {
                $.unblockUI();
                alert(msg);
            }
        });

そして、これは私の Webmethod です

[WebMethod]
    public static string RenderControl(int id, string miktar, string baslik, string aciklama, double tutar)
    {
        kategorilistesi m = new kategorilistesi();
        string uid = Guid.NewGuid().ToString();
        ArrayList cart = (ArrayList)m.Session["cart"];
        Siparis n = new Siparis(id, Double.Parse(miktar), baslik, aciklama, tutar, uid);

        cart.Add(n);
        m.Session["cart"] = cart;

        Page page = new Page();
        UserControl userControl = (UserControl)page.LoadControl("~/UserControls/ksepetitem.ascx");
        userControl.EnableViewState = true;
        ksepetitem a = (ksepetitem)userControl;
        a.YemekAdi = baslik;
        a.YemekFiyat = tutar;
        a.YemekMiktar = Double.Parse(miktar);
        a.Guid = uid;

        HtmlForm form = new HtmlForm();
        form.Controls.Add(userControl);
        page.Controls.Add(form);

        StringWriter textWriter = new StringWriter();
        HttpContext.Current.Server.Execute(page, textWriter, false);
        return m.CleanHtml(textWriter.ToString());
    }

コントロールに一意の ID を設定するにはどうすればよいですか? GUID を使用していますが、この状況で GUID を追加する方法がわかりません

4

1 に答える 1

1

コントロール ID を自分の GUID に割り当てるだけでよいことがわかりました。このような、

....YemekFiyat = tutar;
        a.YemekMiktar = Double.Parse(miktar);
        a.Guid = uid;

        a.ID = uid;

        HtmlForm form = new HtmlForm();
        form.Controls.Add(userControl);
        page.Controls.Add(form);......
于 2012-07-04T08:39:05.807 に答える