<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("   " + "{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;"