0


0

JavaScriptからASP.NETコードビハインドに値を渡す
  • ASP.NET Imageコントロールが次のように宣言されています*


私のJavaScriptコードは次のとおりです

function ReverseSort() {
    var img = window.event.srcElement;
    if(img.className == "Ascending") {
        img.className = "Descending";
        img.alt = "Descending";
        img.src = "<%= ResolveClientUrl("~/images/sort_descending.gif") %>";
    } else {
        img.className = "Ascending";
        img.alt = "Ascending";
        img.src = "<%= ResolveClientUrl("~/images/sort_ascending.gif") %>";
    }
}
  • Page_LoadコードビハインドのImageコントロールに「onclick」属性を追加しました:*

protected void Page_Load(object sender, EventArgs e) {
    if (IsPostBack)
        return;

    SortOrder.Attributes.Add("onclick", "ReverseSort()");
}

これは、イメージコントロールのSortOrder.OnClickイベントです:

if (SortOrder.AlternateText == "Ascending") {
    /* Sort ascending */
} else {
    /* Sort descending */
}

私の問題は、SortOrder.AlternateTextが常に「昇順」であるということです。 私の分離コードは、javascriptによって行われたプロパティの変更を認識していないようです。

2 Answer


1


私はそれがうまくいくとは思わないでしょう。 サーバー側のコントロールの属性は、クライアント側のDOM属性にマップされません。 サーバーで「AlternateText」を設定すると、必要な「alt」テキストが出力されますが、双方向ではありません。

できることは、非表示のサーバー側コントロールを使用して、ソートの状態を維持することです。 javascriptを使用して切り替える非表示の ``は、それを行います。


0


サーバーにポストバックされるのは、名前と値のペアのみです。 要素でjavascriptを使用して変更された属性は、ブラウザーに残ります。