js与c# 之间数据和方法交互

来源:互联网 发布:申请阿里云服务器 编辑:程序博客网 时间:2024/06/05 16:43

function loginNull()
{
if (document.form1.txtName.value =="")
{
//alert("请填写您的用户名!");
WebForm1.show("用户名错误,不能为空").value;
//alert("请填写您的用户名!");
document.form1.txtName.focus();
return false;
}
var filter=/^s*[.A-Za-z0-9_-]{5,15}s*$/;
if (!filter.test(document.form1 .txtName.value)) {
WebForm1.show("用户名错误").value;
//alert("用户名填写不正确,请重新填写!可使用的字符为(A-Z a-z 0-9 _ - .)长度不小于5个字符,不超过15个字符,注意不要使用空格。");
document.form1.txtName.focus();
document.form1.txtName.select();
return false;
}
if (document.form1.txtPwd.value =="")
{
WebForm1.show("密码错误").value;
//alert("请填写您的密码!");
document.form1.txtPwd.focus();
return false;
}
var filter=/^s*[.A-Za-z0-9_-]{5,15}s*$/;
if (!filter.test(document.form1 .txtPwd.value)) {
WebForm1.show("密码错误").value;
//alert("密码填写不正确,请重新填写!可使用的字符为(A-Z a-z 0-9 _ - .)长度不小于5个字符,不超过15个字符,注意不要使用空格。");
document.form1 .txtPwd.focus();
document.form1 .txtPwd.select();
return false;
}
//form1.submit ();
return true;
}

function login()
{
try
{
alert("aaa");
WebForm1.GetLogin().value;
}
catch(e)
{
return 0;
}
}
------------------
[AjaxPro.AjaxMethod]
public void GetLogin()
{
bool login = false;
////login = DBAccess.TestchkExist(this.txtName.Text.Trim(), this.txtPwd.Text.Trim());
WebForm1 web1 = new WebForm1();
login = web1.TestchkExist(this.txtName.Value.Trim(), this.txtPwd.Value.Trim());
//return login;
if (login)
{
Server.Transfer("ok.aspx");
//Response.Write("afads");
//Response.Redirect("ok.aspx");
}
else
{
Server.Transfer("zhuce.aspx");
}
}
public bool TestchkExist(string username, string pwd)
{
if (username.Equals("123") && pwd.Equals("456"))
{
return true;
}
else
{
return false;
}
}
第二个
<script type="text/javascript">
        //选择全部
        function CheckAll_Click()
        ...{
            var itemnum = document.getElementsByName("ChoessAll").length;
            //if (document.form1.ChoessAll.length)
            if (itemnum>0)
            ...{
                for (var i=0;i<itemnum;i++)
                ...{
                    document.getElementsByName("ChoessAll")[i].checked = true;
                }
            }
            else
            ...{
               document.getElementsByName("ChoessAll").checked = true;
            }
        }
        //反选
        function CheckReChange_Click()
        ...{
            var itemnum = document.getElementsByName("ChoessAll").length;
            if (itemnum>0)
            ...{
                for (var i=0;i<itemnum;i++)
                ...{
                    if(document.getElementsByName("ChoessAll")[i].checked)
                    ...{
                        document.getElementsByName("ChoessAll")[i].checked = false;
                    }
                    else
                    ...{
                        document.getElementsByName("ChoessAll")[i].checked = true;
                    }
                }
            }
            else
            ...{
               document.getElementsByName("ChoessAll").checked = true;
            }
        }
        //删除数据事件(根据选择框删除)
        function Delete_Click()
        ...{
            var itemnum = document.getElementsByName("ChoessAll").length;
            if (itemnum>0)
            ...{
                var num=0;
                document.getElementById("hfId").value = ",";
                for (var i=0;i<itemnum;i++)
                ...{
                    if(document.getElementsByName("ChoessAll")[i].checked)
                    ...{
                        document.getElementById("hfId").value = document.getElementById("hfId").value + document.getElementsByName("ChoessAll")[i].value;
                        document.getElementById("hfId").value = document.getElementById("hfId").value + ",";
                        num = num + 1;
                    }
                }
            }
            if(0==num)
            ...{
                return alert('没有选中任何数据!');
            }
            else
            ...{
                if(confirm('确定要删除所选中的数据吗?'))
                ...{
                    document.getElementById("btnShowID").click();
                }
            }
        }
    </script>

 

这里,随便弄个控件来触法“全选”和“反选”JS函数
<a href="#" onclick="CheckAll_Click();">全选</a>
<a href="#" onclick="CheckReChange_Click();">反选</a>

到这里,已经可以实现了“全选”和“反选”功能了(看看,是不是无刷新)。

最后,实现,批量删除,这里,利用JS触法后台事件,添加一个服务器控件Button,ID=btnShowID(JS代码要使用),把他设置为隐藏,添加一句Html代码,来激发这个按钮的点击事件。
<a href="#" onclick="Delete_Click();">删除</a>

实现Button的后台事件:
protected void btnShowID_Click(object sender, EventArgs e)
...{
        //把这里的改成数据库操作就可以实现批量删除了
        labID.Text = hfId.Value.ToString().Trim();
        string[] strParam = hfId.Value.ToString().Split(',');
        for (int i = 0; i < strParam.Length; ++i)
        ...{
            this.Response.Write(strParam[i].ToString().Trim() + "<br>");
        }}

功能到这里就完结了,下面给出全部实现代码:

aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
    <script type="text/javascript">
        //选择全部
        function CheckAll_Click()
        ...{
            var itemnum = document.getElementsByName("ChoessAll").length;
            //if (document.form1.ChoessAll.length)
            if (itemnum>0)
            ...{
                for (var i=0;i<itemnum;i++)
                ...{
                    document.getElementsByName("ChoessAll")[i].checked = true;
                }
            }
            else
            ...{
               document.getElementsByName("ChoessAll").checked = true;
            }
        }
        //反选
        function CheckReChange_Click()
        ...{
            var itemnum = document.getElementsByName("ChoessAll").length;
            if (itemnum>0)
            ...{
                for (var i=0;i<itemnum;i++)
                ...{
                    if(document.getElementsByName("ChoessAll")[i].checked)
                    ...{
                        document.getElementsByName("ChoessAll")[i].checked = false;
                    }
                    else
                    ...{
                        document.getElementsByName("ChoessAll")[i].checked = true;
                    }
                }
            }
            else
            ...{
               document.getElementsByName("ChoessAll").checked = true;
            }
        }
        //删除数据事件(根据选择框删除)
        function Delete_Click()
        ...{
            var itemnum = document.getElementsByName("ChoessAll").length;
            if (itemnum>0)
            ...{
                var num=0;
                document.getElementById("hfId").value = ",";
                for (var i=0;i<itemnum;i++)
                ...{
                    if(document.getElementsByName("ChoessAll")[i].checked)
                    ...{
                        document.getElementById("hfId").value = document.getElementById("hfId").value + document.getElementsByName("ChoessAll")[i].value;
                        document.getElementById("hfId").value = document.getElementById("hfId").value + ",";
                        num = num + 1;
                    }
                }
            }
            if(0==num)
            ...{
                return alert('没有选中任何数据!');
            }
            else
            ...{
                if(confirm('确定要删除所选中的数据吗?'))
                ...{
                    document.getElementById("btnShowID").click();
                }
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <a href="#" onclick="Delete_Click();">删除</a>
    </div>
    <div>
        <asp:GridView ID="gvUint" runat="server" AutoGenerateColumns="False" Width="100%">
            <Columns>
                <asp:TemplateField HeaderText="选择">
                    <ItemTemplate>
                        <input id="chkChoessAll" name="ChoessAll" value='<%# DataBinder.Eval(Container.DataItem, "ID")%>' type="checkbox" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="ID" HeaderText="楼盘名" />
                <asp:BoundField DataField="address" HeaderText="地址" />
            </Columns>
        </asp:GridView>
    </div>
        <a href="#" onclick="CheckAll_Click();">全选</a>
        <a href="#" onclick="CheckReChange_Click();">反选</a>
        <asp:Label ID="labID" runat="server"></asp:Label>
    <div>
        <asp:HiddenField ID="hfId" runat="server" />
        <asp:Button ID="btnShowID" runat="server" Text="btnShowID" OnClick="btnShowID_Click" style="display:none"/></div>
    </form>
</body>
</html>

 

cs:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
...{
    protected void Page_Load(object sender, EventArgs e)
    ...{

    }
    protected void btnShowID_Click(object sender, EventArgs e)
    ...{
        //把这里的改成数据库操作就可以实现批量删除了
        labID.Text = hfId.Value.ToString().Trim();
        string[] strParam = hfId.Value.ToString().Split(',');
        for (int i = 0; i < strParam.Length; ++i)
        ...{
            this.Response.Write(strParam[i].ToString().Trim() + "<br>");
        }
    }
}
第三个
如何在C#中访问JavaScript函数?
答案如下:
c#代码中执行javaScript函数:
方法一:1、Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>");
方法二:使用Literal类,然后
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str="<script language='javascript'>";
str+="selectRange()";
str+="</script>";
/ teral1.Visible=true;
Literal1.Text=str;
}
在JavaScript访问C#变量?
答案如下:
方法一:1、通过页面上隐藏域访问<input id="xx" type="hidden" runat="server">
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+"
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
           "<script language='javascript'>var temp=" + tmp + "</script>"
           tmp是后台变量,然后js中可以直接访问temp获得值。


3.如何在C#中访问JavaScript的已有变量?

答案如下:

方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;
        2、后台用request["id"]来获取值;

方法二:可以用cookie或session


javaScript函数中执行C#代码中的函数:
方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
        2、在前台写一个js函数,内容为document.getElementById("btn1").click();
        3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:1、函数声明为public           
           后台代码(把public改成protected也可以)
           public string ss()
           {
              return("a");
           }
        2、在html里用<%=fucntion()%>可以调用
           前台脚本
           <script language=javascript>
           var a = "<%=ss()%>";
           alert(a);
           </script>
方法三:1、<script language="javascript">
           <!- -
           function __doPostBack(eventTarget, eventArgument)
           {
              var theForm = document.Form1;     //指runat=server的form
              theForm.__EVENTTARGET.value = eventTarget;
              theFrom.__EVENTARGUMENT.value = eventArgument;
              theForm.submit();
           }
           -->
           </script>
           <input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">
      
方法四:<script language="javascript">
function SubmitKeyClick()
{
    if (event.keyCode == 13)
    {
        event.cancelBubble = true;
        event.returnValue = false;
        document.all.FunName.value="你要调用的函数名";
        document.form[0].submit();
    }
}
</script>

<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉

在.CS里有:
public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case "enter()":
enter() ; //调用该函数
break;
case "其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}

public void enter()
{
//……比如计算某值
}
=第四个
1.如何在JavaScript访问C#函数?
2.如何在JavaScript访问C#变量?
3.如何在C#中访问JavaScript的已有变量?
4.如何在C#中访问JavaScript函数?

问题1答案如下:
javaScript函数中执行C#代码中的函数:
方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
        2、在前台写一个js函数,内容为document.getElementById("btn1").click();
        3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:1、函数声明为public            
           后台代码(把public改成protected也可以)
           public string ss()
           {
              return("a");
           }
        2、在html里用<%=fucntion()%>可以调用
           前台脚本
           <script language=javascript>
           var a = "<%=ss()%>";
           alert(a);
           </script>
方法三:1、<script language="javascript">
           <!--
           function __doPostBack(eventTarget, eventArgument)
           {
              var theForm = document.Form1;     //指runat=server的form
              theForm.__EVENTTARGET.value = eventTarget;
              theFrom.__EVENTARGUMENT.value = eventArgument;
              theForm.submit();
           }
           -->
           </script>
           <input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">
       
方法四:<script language="javascript">
function SubmitKeyClick()
{
    if (event.keyCode == 13)
    {
        event.cancelBubble = true;
        event.returnValue = false;
        document.all.FunName.value="你要调用的函数名";
        document.form[0].submit();
    }
}
</script>

<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉

在.CS里有:
public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case "enter()":
enter() ; //调用该函数
break;
case "其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}

public void enter()
{
//……比如计算某值
}

问题2.如何在JavaScript访问C#变量?
答案如下:
方法一:1、通过页面上隐藏域访问<input id="xx" type="hidden" runat="server">
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+"
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
           "<script language='javascript'>var temp=" + tmp + "</script>"
           tmp是后台变量,然后js中可以直接访问temp获得值。


3.如何在C#中访问JavaScript的已有变量?

答案如下:

方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;
        2、后台用request["id"]来获取值;

方法二:可以用cookie或session


4.如何在C#中访问JavaScript函数?
答案如下:
c#代码中执行javaScript函数:
方法一:1、Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>");
方法二:使用Literal类,然后
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str="<script language='javascript'>";
str+="selectRange()";
str+="</script>";
//Literal1.Visible=true;
Literal1.Text=str;
}

 

 

 

 

本文章转自:http://hi.baidu.com/chenyongliu/blog/item/24e46f7f49db580f29388a4b.html

原创粉丝点击