aspx向aspx.cs传值、调用方法

睡神在睡觉 2009-07-06 11:03:03
RT


1.在ASPX页上调用ASPX。CS页下的方法,javascript内这样写<%fuc_num(参数)%>,此处参数如何写?

2.这样调用在编译的时候会提示错误,缺少分号<%fuc_num(参数);%>这样写又不处发事件,如何来触发我自定义的事件(自定义事件是public的)?

3.从aspx页上的JavaScript内怎么向aspx.cs页上传值?

求解,最好有示例代码
...全文
776 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengying0529 2009-07-06
这个其实也可以 不过你需要在里面做刷新的动作 让页面刷新一下

<script type="text/javascript">
function ref()
{
document.execCommand("Refresh");
}
</script>
回复
睡神在睡觉 2009-07-06
aspx页:
<asp:ListBox ID="Data_List" runat="server" Height="415px"
Width="259px" OnSelectedIndexChanged="Data_List_SelectedIndexChanged"></asp:ListBox> <br />

aspx.cs页:
protected void Data_List_SelectedIndexChanged(object sender, EventArgs e)
{
string val = "";
for (byte cnt = 0; cnt < Data_List.Items.Count; cnt++)
{
if ((Data_List.Items[cnt].Value != null) && (Data_List.Items[cnt].Selected))
val = Data_List.Items[cnt].Value.ToString();
}

TextBox1.Text = val;
}
为什么这么写不触发事件呢?
回复
fengying0529 2009-07-06
添加event后 只要你的鼠标一点击textbox以外的地方 这个事件就触发 值也就会改变
回复
fengying0529 2009-07-06
前台:
TextBox ID="txtEmpNo" runat="server" Width="108px" onblur="DoEvent('txtEmpNo_Changed')"

后台:
public void DoEvent(string evt_name)
{
switch (evt_name)
{
case "txtEmpNo_Changed":
//你想做的事情

break;
}
}
回复
睡神在睡觉 2009-07-06
注册事件么?那为什么我用自带的事件,不刷新都没反应呢?
回复
fengying0529 2009-07-06
通过添加event
回复
睡神在睡觉 2009-07-06
谢谢楼上几位,刚才测试了下,在页面上我放了一个textbox,双击textbox在TextBox1_TextChanged事件里写下this.TextBox1.Text = "OK!!!!";在前台页面上改变textbox1内的内容事件没有触发,但是再点刷新就可以触发这个事件,请问是怎么回事?我想实现的是
function addSrcToDestList() {
listAll = window.document.forms[0].Data_List;
for(var i = 0; i < listAll.length; i++) {
if ((listAll.options[i] != null) && (listAll.options[i].selected)) {
window.document.forms[0].TextBox1.value=listAll.options[i].value;
//在此触发textbox的change事件,并且在cs页代码内改变前台页上控件的值

break;
}
}
}



回复
yanm7788 2009-07-06
貌似楼上的都说了.
回复
feifeiyiwen 2009-07-06
代码挺全,学习
回复
我不懂电脑 2009-07-06
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()
{
//……比如计算某值
}
回复
blue_hao 2009-07-06
后台代码(把public改成protected也可以)
public string ss()
  {
  return("a");
  }
  在html里用可以调用
  前台脚本
<script language=javascript>
  var a = "<%=ss()%>";
  alert(a);
</script>
回复
blue_hao 2009-07-06
ajax
回复
zibaozhangyu 2009-07-06
你pageload 里面加了 if(!postback){} 了吗?
回复
睡神在睡觉 2009-07-06
to:zibaozhangyu

text你说写了不触发,你忘记吧 AutoPostBack = true 了~

这个我加上了,还是触发不了<asp:TextBox ID="TextBox1" runat="server" AutoPostBack = "true" OnTextChanged="TextBox1_TextChanged"></asp:TextBox></td>


谢谢大家,前几个问题基本都明白了,这个为什么加不上呢?
回复
zibaozhangyu 2009-07-06
1.在ASPX页上调用ASPX。CS页下的方法,javascript内这样写 <%fuc_num(参数)%>,此处参数如何写?

参数最好是 object 类型的

2.这样调用在编译的时候会提示错误,缺少分号 <%fuc_num(参数);%>这样写又不处发事件,如何来触发我自定义的事件(自定义事件是public的)?

你少了个等号<%=fuc_num(参数)%>,

3.从aspx页上的JavaScript内怎么向aspx.cs页上传值?

这个自己去搜

text你说写了不触发,你忘记吧 AutoPostBack = true 了~
回复
wuyq11 2009-07-06
Textbox1.Attributes.Add("onblur","DoEvent()");
还可使用ajax通过web services调用方法

回传调用事件__doPostBack('Button1','');
3
Response.Write("<script>A("+textbox1.Text+");</script>");
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.