0

チェックボックスを列の1つとして持つgridviewを含むasp.net 3.5アプリケーションがあります。

ユーザーがチェックボックスを選択せず​​に送信ボタンをクリックすると、ユーザーにボタンの選択を求めるアラートが発生します。

アラートを発生させるコードは次のとおりです。

 System.Text.StringBuilder sb = new System.Text.StringBuilder();
 sb.Append(@"<script language='javascript'>");
 sb.Append(@"alert('Please select at least one record!')");
 sb.Append(@"</script>");
 ScriptManager.RegisterStartupScript(upnlGrid, this.GetType(), "GridView", sb.ToString(), false);
 BindGrid();

アラートが発生するまで、「読み込み中...」という画像 (ajax 更新の進行状況バー) が表示されますが、これは問題ありません。しかし、アラートが発生した後も、表示されていない同じ画像を表示する必要があります。これにより、ページが数秒間ハングアップします (5 ~ 10 秒)。その 5 ~ 10 秒間、読み込み中の画像を表示する必要があります。

ガイドしてください!

4

1 に答える 1

0

ポストバックを実行する前に、選択を検証してみてください。大まかな例を次に示します。

<asp:Button ID="Button1" runat="server" Text="Foo" OnClientClick="return validateGridSelection()" ... />

そしてあなたの JavaScript 関数:

validateGridSelection = function() {
    var itemsSelected = 0;
    $("#<%=GridView1.ClientID%>").find("input:checkbox").each(function() {
        if (this.checked) {
            itemsSelected++;
        }
    });
    if (itemsSelected == 0) {
        alert("Please select at least one checkbox.");
    }
    return true;
} 
于 2011-09-08T16:24:24.010 に答える