0

グリッドビューに行がなく、これはクライアントスクリプトのように機能すると思いましたが、[ok]を押すと、コントロールはメソッドの残りの部分をスキップします。とにかく、この検証またはアラートを実行して、コントロールを次のステートメントに移動することはできますか?

protected void btnRunD_Click(object sender, EventArgs e)
 {
       try
        {
            int iESStatus = 0;
            int iRunStatus = 0;
            ApplicationUser au = (ApplicationUser)Session["ApplicationUser"];
            if (UploadFileGrid.Rows.Count <= 0)
            {
               ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(),     "err_msg", "confirm('No new data files have been uploaded. Are you sure you want to run EYDS Processing Module?');",
           //true);
            }

            if (au.RoleID != 2) //RoleID is not Admin!
            {
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "err_msg", "alert('You do not have enough privileges to use this functionality!');",
           true);
           }
           else
           {.........}
}

私が苦労している部分はここにあります:
グリッドビューに行がない場合は、okキャンセルポップアップを提供しようとしています。

if (UploadFileGrid.Rows.Count <= 0)
    {
        ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "err_msg", "confirm('No new data files have been uploaded. Are you sure you want to run?');",       
    }
4

2 に答える 2

3

ボタンが次のようなものであると仮定します。

<asp:Button ID="btnDoSomething" runat="server" Text="Do Something" OnClientClick="return GetConfirmation();"  OnClick="btnDoSomething_Click" />

次に、次のようにjavascript関数を追加します。

function GetConfirmation() {
    var rowscount = document.getElementByID(<%=UploadFileGrid.ClientID%>).rows.length;
    return rowscount > 0 || confirm('No new data files have been uploaded. Are you sure you want to run?');
}

次に、確認ボタンが表示されたときにユーザーが[OK]を押すと、ポストバックされます。

于 2012-09-18T05:55:40.137 に答える
1

javascriptまたはjqueryを使用してそれを行うことができます:

$("#<%=btnApprove.ClientID %>").click(function () {
            if ($("#<%=UploadFileGrid.ClientID %> ").find("tr").length == 0) {
                if (confirm('No new data files have been uploaded. Are you sure you want to run?')) {
                    return true;
                }
                else {
                    return false;
                }
            }

        });

ユーザーが[OK]を押すと、ページがポストバックされ、その後実行するコードを記述できます。このコードがお役に立てば幸いです。

于 2012-09-18T06:10:28.480 に答える