积极答复者
js 调用后台方法

问题
-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;public partial class Template_Default_PaperItem : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.ffff.Attributes.Add("onclick", "<script>var b = '<%=delete_Paper() %>';</script>");
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection cnt = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["WebAdminConnectionString"].ConnectionString);
cnt.Open();
SqlCommand cmdQuestions = new SqlCommand("", cnt);
cmdQuestions.CommandText = "EXEC Delete_Paper @PaperId,@Domain";
cmdQuestions.Parameters.AddWithValue("@PaperId", Convert.ToInt32(this.PaperId.Text.ToString()));
cmdQuestions.Parameters.AddWithValue("@Domain", this.Request.Url.DnsSafeHost.ToString());
cmdQuestions.ExecuteNonQuery();
cnt.Close();
Page.RegisterStartupScript("f5", "<script>alert('删除成功');</script>");}
catch (Exception ee)
{
Page.RegisterStartupScript("f6", "<script>alert('删除失败');</script>");
}
}
}
上边是我的后台事件
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PaperItem.ascx.cs" Inherits="Template_Default_PaperItem" %>
<asp:HyperLink ID="HyperLink1" DataField="NUrl" BindProperty="NavigateUrl" runat="server"
Target="_parent">
<div style="width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
<asp:Label ID="remark" DataField="remark" BindProperty="Text" runat="server"></asp:Label></div>
</asp:HyperLink>
<div id="a1" visible="false" runat="server">
<asp:Label ID="PaperId" DataField="PaperId" BindProperty="Text" runat="server"></asp:Label></div><div id=ffff runat=server style="background-color: Lime;">
删除</div>
<%--<script>
function ffff() {
if (confirm("确认删除?")) {
var b = "<%=delete_Paper() %>";
if (b == 0) {
alert("删除失败");
}
else {
alert("删除成功");
}
}
}
</script>--%>
上边是我的前台文件
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PaperItem.ascx.cs" Inherits="Template_Default_PaperItem" %>
<asp:HyperLink ID="HyperLink1" DataField="NUrl" BindProperty="NavigateUrl" runat="server"
Target="_parent">
<div style="width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
<asp:Label ID="remark" DataField="remark" BindProperty="Text" runat="server"></asp:Label></div>
</asp:HyperLink>
<div id="a1" visible="false" runat="server">
这个 作用是绑定从数据库里面读出的数据 只是起到一个显示的作用 HyperLink 是我在查询的时候自己添加的一列url 目的是点击这条记录的时候跳到相应的页面
<asp:Label ID="PaperId" DataField="PaperId" BindProperty="Text" runat="server"></asp:Label></div>
这个是记录要删除那一条记录用的Id值
我最后要实现的结果是2009年第一套测试题 删除当点击删除的时候 就把这一条记录删除
而那个删除按钮 不要是一个button按钮,因为不好定义样式 我就是想把这个删除的过程及显示弄的好看一些
所以我才想用js调用后台删除函数
我用的工具是vs2008 数据库是简版的sql 2005- 已移动 孟宪会Moderator 2009年9月28日 9:46 (发件人:.NET Framework 一般性问题讨论区)
- 已编辑 StaticYu 2009年9月29日 7:14
答案
-
一个完整的例子
你创建一个表Table1,字段id,Title就可以测试了
<%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { SqlConnection cn = new SqlConnection(); cn.ConnectionString = "Data Source=(local);Initial Catalog=pubs;User ID=sa;Password=sa"; cn.Open(); SqlCommand cmd; if (Request.QueryString["id"] != null) { cmd = new SqlCommand("delete from Table1 where id=@id", cn); cmd.Parameters.AddWithValue("@id", Request.QueryString["id"]); cmd.ExecuteNonQuery(); } else { cmd = new SqlCommand("select * from Table1", cn); SqlDataReader dr = cmd.ExecuteReader(); this.GridView1.DataSource = dr; this.GridView1.DataBind(); } cn.Close(); } } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> var http = null; function createXMLHTTP() { return window.XMLHttpRequest ? new window.XMLHttpRequest() : new window.ActiveXObject("MSXML2.XMLHTTP"); } function DeleteData(num, obj) { http = createXMLHTTP() http.open("GET", "<%=Request.Url.ToString() %>?id=" + num + "&" + Date.parse(new Date()), true); http.onreadystatechange = function() { if (http.readyState == 4 && http.status == 200) { deleteTableRow(obj) } } http.send(null); } function deleteTableRow(o) { p = o.parentNode; while (p.tagName != "TR") { p = p.parentNode } if (p.tagName == "TR") { p.parentNode.removeChild(p) } } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Eval("Title") %></ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <div onclick='DeleteData(<%#Eval("id") %>,this);return false;'>删除</div></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
- 已标记为答案 孟宪会Moderator 2009年10月7日 2:15
全部回复
-
你好!你可以使用下面的方式来达到确认删除的目的。
<%@ Page Language="C#" AutoEventWireup="true"%> <script runat="server"> protected void Button1_Click(object sender, EventArgs e) { Response.Write("确定删除"); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" OnClientClick="return confirm('您确定要删除吗?');" /> </div> </form> </body> </html>
知识改变命运,奋斗成就人生! -
MVP, 版主 你好?
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PaperItem.ascx.cs" Inherits="Template_Default_PaperItem" %>
<asp:HyperLink ID="HyperLink1" DataField="NUrl" BindProperty="NavigateUrl" runat="server"
Target="_parent">
<div style="width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
<asp:Label ID="remark" DataField="remark" BindProperty="Text" runat="server"></asp:Label></div>
</asp:HyperLink>
<div id="a1" visible="false" runat="server">
这个 作用是绑定从数据库里面读出的数据 只是起到一个显示的作用 HyperLink 是我在查询的时候自己添加的一列url 目的是点击这条记录的时候跳到相应的页面
<asp:Label ID="PaperId" DataField="PaperId" BindProperty="Text" runat="server"></asp:Label></div>
这个是记录要删除那一条记录用的Id值
我最后要实现的结果是
2009年第一套测试题 删除当点击删除的时候 就把这一条记录删除
而那个删除按钮 不要是一个button按钮,因为不好定义样式 我就是想把这个删除的过程及显示弄的好看一些 -
呵呵,明白了,原来这个删除是你自己写的啊,要不我还问你是否这个问题自己解决了,自己删除了,误会。2009年第一套测试题 删除很好实现啊。你给删除链接传递 测试题的id就可以了。<asp:HyperLink ID="h" runat="server" NavigateUrl='Delete.aspx?id=xxx' Text="删除"></asp:HyperLink>如果是js删除,则需要使用ajax
【孟子E章】- 已标记为答案 KeFang Chen 2009年9月30日 2:19
- 取消答案标记 StaticYu 2009年10月6日 5:00
-
一个完整的例子
你创建一个表Table1,字段id,Title就可以测试了
<%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { SqlConnection cn = new SqlConnection(); cn.ConnectionString = "Data Source=(local);Initial Catalog=pubs;User ID=sa;Password=sa"; cn.Open(); SqlCommand cmd; if (Request.QueryString["id"] != null) { cmd = new SqlCommand("delete from Table1 where id=@id", cn); cmd.Parameters.AddWithValue("@id", Request.QueryString["id"]); cmd.ExecuteNonQuery(); } else { cmd = new SqlCommand("select * from Table1", cn); SqlDataReader dr = cmd.ExecuteReader(); this.GridView1.DataSource = dr; this.GridView1.DataBind(); } cn.Close(); } } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> var http = null; function createXMLHTTP() { return window.XMLHttpRequest ? new window.XMLHttpRequest() : new window.ActiveXObject("MSXML2.XMLHTTP"); } function DeleteData(num, obj) { http = createXMLHTTP() http.open("GET", "<%=Request.Url.ToString() %>?id=" + num + "&" + Date.parse(new Date()), true); http.onreadystatechange = function() { if (http.readyState == 4 && http.status == 200) { deleteTableRow(obj) } } http.send(null); } function deleteTableRow(o) { p = o.parentNode; while (p.tagName != "TR") { p = p.parentNode } if (p.tagName == "TR") { p.parentNode.removeChild(p) } } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Eval("Title") %></ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <div onclick='DeleteData(<%#Eval("id") %>,this);return false;'>删除</div></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
- 已标记为答案 孟宪会Moderator 2009年10月7日 2:15