簡體   English   中英

怎么做回發Javascript,jquery

[英]how to do postback Javascript, jquery

<asp:Button ID="btn" OnClientClick="if(confirm_delete()){
/* post back*/
}else{
return false;
};" OnClick="btnDelete_Click" runat="server" Text="delete"/>

嗨,我有這個代碼,但我不能回復它,我不知道如何?

是嗎:

<script type="text/javascript"> 
        function CallServer() {
            __doPostBack('not sure what goes here','or here');
        }  
</script>

然后:

<asp:Button ID="btn" OnClientClick="if(confirm_delete()){
/CallServer()/
}else{
return false;
};" OnClick="btnDelete_Click" runat="server" Text="delete"/>

我的另一個腳本:

<script type="text/javascript">
    function confirm_delete()
{
  if (confirm("Are you sure you want to delete this comment?")==true)
    return true;
  else
    return false;
}
</script>

編輯:

在服務器端,我動態地將div添加到我的頁面,其中包含來自我的數據庫的內容,每個內容都會添加一個新的div,然后每個div都會使用idWallPosting(因此我可以調用我的刪除功能)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Odbc;
using System.IO;

public partial class UserProfileWall : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        //btn.Visible = false;
        string theUserId = Session["UserID"].ToString();
        PopulateWallPosts(theUserId);
    }
    private void PopulateWallPosts(string userId)
    {

        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("SELECT idWallPosting, wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN User u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE wp.UserID=" + userId + " ORDER BY idWallPosting DESC", cn))
            {
                //("SELECT wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN [User] u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE UserID=" + userId + " ORDER BY idWallPosting DESC", cn))
                using (OdbcDataReader reader = cmd.ExecuteReader())
                {
                    test1.Controls.Clear();

                    while (reader.Read())
                    {

                        System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
                        div.Attributes["class"] = "test";


                        div.ID = String.Format("{0}", reader.GetString(0));
                        // this line is responsible, problem here and my sqlsntax, im trying to set the SELECT idWallPosting for the div ID
                        Image img = new Image();
                        img.ImageUrl = String.Format("{0}", reader.GetString(2));

                        img.AlternateText = "Test image";

                        div.Controls.Add(img);
                        div.Controls.Add(ParseControl(String.Format("&nbsp&nbsp&nbsp;" + "{0}", reader.GetString(1))));
                        div.Attributes.Add("onclick", "return confirm_delete();");

                        div.Style["clear"] = "both";
                        test1.Controls.Add(div);

                    }
                }
            }
        }
    }

    //protected void btnDelete_Click(object sender, EventArgs e)
    //{

    //    string id = "ctl00_ContentPlaceHolder1_ContentPlaceHolder2_26";
    //    string[] idFragments = id.Split('_');
    //    id = idFragments[idFragments.Length - 1];

    //    //serverside code if confirm was pressed.
    //        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;"))
    //        {
    //            cn.Open();
    //            using (OdbcCommand cmd = new OdbcCommand("DELETE FROM WallPosting WHERE idWallPosting = " + id + ")", cn))
    //            {
    //                cmd.ExecuteNonQuery();
    //            }
    //        }
    //        //PopulateWallPosts();

    //}

    protected void Button1_Click(object sender, EventArgs e)
    {
        string theUserId = Session["UserID"].ToString();
        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings) VALUES (" + theUserId + ", '" + TextBox1.Text + "')", cn))
            {
                cmd.ExecuteNonQuery();
            }
        }
        PopulateWallPosts(theUserId);
    }
    protected void btn_Click(object sender, EventArgs e)
    {
        string id = "ctl00_ContentPlaceHolder1_ContentPlaceHolder2_26";
        string[] idFragments = id.Split('_');
        id = idFragments[idFragments.Length - 1];

        //serverside code if confirm was pressed.
        using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;"))
        {
            cn.Open();
            using (OdbcCommand cmd = new OdbcCommand("DELETE FROM WallPosting WHERE idWallPosting = " + id + ")", cn))
            {
                cmd.ExecuteNonQuery();
            }
        }
        //PopulateWallPosts();
    }
}

在我的asp.net html方面,我有:

<script type="text/javascript">
    function confirm_delete()
{
  if (confirm("Are you sure you want to delete this comment?")==true)
    return true;
  else
    return false;
}
</script>
<p>
<asp:Button ID="btn" OnClientClick="return confirm_delete();" runat="server" 
        CssClass="Btn" Text="delete" onclick="btn_Click"/>
    <asp:TextBox ID="TextBox1" name="TextBox1" runat="server" Rows="3" 
        Height="47px" Width="638px"></asp:TextBox>
</p>
<p>
     <asp:Button ID="Button1" runat="server" Text="Post Message" Width="98px" 
        onclick="Button1_Click" />
    </p>
<p>
</p>
    <style type="text/css">
    img {border-width:0px; width:100px; height:100px;}
</style>
    <div id="test1" runat="server" />

    </div>

</asp:Content>

如果你在我的服務器端代碼中注意到我添加了這一行:

div.Attributes.Add("onclick", "return confirm_delete();")

這可以在我點擊我的div時調用confirm_delete

我試圖用我的asp.net按鈕做的是當點擊div時我可以調用onclick btnDelete_click

OnClientClick="return confirm_delete();"

而已...

編輯:__ doPostBack也有效......

OnClientClick="if(confirm('delete?'))__doPostBack('btn',''); else return false;"

如果您真的想要手動調用__doPostBack() ,則第一個參數是控件的.NET生成名稱。 這可以使用Control.ClientID在服務器端獲得。 第二個參數是應該在請求中傳遞的任何額外數據。 大多數時候我看到這個字段是一個空字符串。

__doPostBack('ctl100$controlName$id','');

controlName是我認為的控件的.NET類名, id是你給控件的ID。 可以肯定的是,在瀏覽器中呈現頁面之后查看頁面的源代碼並搜索對__doPostBack調用並查看它們的格式。

在這種情況下通過回發你想刷新頁面嗎? 如果是這樣那么它只會是:

    location.reload();

在你的情況下:

    <script type="text/javascript">
        function CallServer() 
        {
               location.reload();
        }
    </script>

演示 (單擊按鈕會提示用戶確認 - 如果他們選擇是,則會發回發回復)

在這里看演示!

一種方法,不是最好的方法:在更新面板中添加一個按鈕並將其設置為不可見。 然后調用按鈕的click()方法。

像這樣的東西:

document.getElementById('button').click();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM