0

マップ上のポイントをクリックすると、ページ上のいくつかのサーバー コントロールを変更する ajax リクエストを送信するアプリケーションを構築したいと考えています。

$.post("Default.aspx",
                       { latLng: event.latLng });

同じぺージに:

<asp:Panel runat="server" Visible="false" ID="SaveForm">
        <asp:Label runat="server" Text="Save your result:" Font-Size="X-Large"></asp:Label><br /><br />
        <asp:TextBox runat="server" ID="Latitude" ReadOnly="true"></asp:TextBox><br />
        <asp:TextBox runat="server" ID="Longitude" ReadOnly="true"></asp:TextBox><br />
        <asp:TextBox runat="server" ID="Score" ReadOnly="true"></asp:TextBox><br />
        <asp:TextBox runat="server" ID="Comment" Width="500px" Height="200px"></asp:TextBox>
        <asp:Button runat="server" OnClick="Save" />
    </asp:Panel>

aspx.cs:

protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["userId"] == null)
                Response.Redirect("LoginForm.aspx");

            if (Request["latLng"] != null)
            {
                String latLng = Request["latLng"];

                SaveForm.Visible = true;

                char[] delimiterChars = { '(', ',', ')'};
                String[] numbers = latLng.Split(delimiterChars);
                Latitude.Text = numbers[0];
                Longitude.Text = numbers[1];
                Score.Text = (getScore(float.Parse(numbers[0]), float.Parse(numbers[1]))).ToString();
            }
        }

もちろん、これは機能しません。論理的ではないためです。しかし、このコードから、私がやろうとしていることのアイデアを得ることができ、私を助けることができます. ありがとう!

4

3 に答える 3

1

この些細なタスクのためのWCFサービスはやり過ぎだと思います。代わりにWebMethodsを検討してください。javascriptを介してアクセスできるコードビハインドでWebMethodを定義できます

元:

Page.aspx.cs

[WebMethod]
public static void wmSomeMethod(string param)
{
    string test=param;
}

Page.aspx

function callPageMethod(param)
{
    PageMethods.wmSomeMethod(param, onSuccess, onError);
}

ページメソッドを使用するには、ページにScriptManagerが必要であることに注意してください。

編集:jQueryの代替案についてはここで説明します

于 2012-06-26T13:58:18.720 に答える
0
  1. サーバー側でWCFサービスを作成するwebHttpBinding
  2. jQueryイベントをonlclickまたは必要なものにします
  3. jQueryajax呼び出しを使用してWCFサービスを呼び出す
  4. コントロールに結果を適用する

jQueryを使用してWCFサービスを呼び出す例を次に示します。

于 2012-06-26T13:53:12.997 に答える
0

これを AJAX リクエストで機能させたい場合は、2 つのオプションがあります。

1 つは、Asp.Net 更新パネルを使用することです (推奨されませんが、おそらく最も簡単です)。これにより、サーバー側のイベント ハンドラーへの ajax ポストバックが自動的に作成され、更新パネル内のサーバー コントロールのコード ビハインドを変更して、ユーザーに反映させることができます。更新パネルに関する良い記事を次に示します。ただし、注意していただきたいのは、私が働いている場所でそれらを使用しており、ストレートな AJAX よりもはるかに重量があり、耳障りであるため、あまり満足していないということです。

2 つ目は、疑似コードから、HTML を変更するために緯度と経度が必要なだけで、実際にはサーバーから何も必要としないように見えます。このような場合は、HTML を直接変更して必要なものを表示する JavaScript を記述できます。

オプション 2 について知っておくべき重要な点は、サーバー コントロールは魔法ではないということです。それらがクライアント側になると、ページ上の他のものと同じように HTML マークアップとして表され、他のものと同じように JavaScript を使用して変更できます。

クライアントに表示される内容を変更するとともに、サーバー側で何らかのアクションを実行する必要がある場合は、更新パネルを使用する代わりに、ajax リクエストをリッスンして必要なことを実行する軽量の Web サービスを作成することをお勧めします。

于 2012-06-26T14:06:14.660 に答える