to HarryandMark(涛子) : 这种方法不好控制,用户可能会选y or n。to runmin(*^_^*) : 可否详细些??
WEB SERVICE是基于HTTP的一种服务形式,最大特点就是可以通过HTTP将服务器上的对象通过XML描述之后,通过HTTP传送到客户端(或者是IE,或者是APP等)。WEB SERVICE的基础就是SOAP(简单对象操纵协议)服务器端的对象用XML描述之后被封装在SOAP消息中,通过HTTP传送。用来描述对象的XML叫WSDL(WEB SERVICE定义语言,XML扩展)当客户端读取对象的时候,首先要读取WSDL,再结合SOAP消息,将对象还原。此都为机制,实现非常简单(C#,其它东西做要求WEB服务器能够处理SOAP消息,并发出相应的响应,实现不容易,C# WEB SERVICE工程都已经建好了不用我们操心了),至于客户端解析,如果用.NET系列非常方便,但是往往没有.NET环境,为了兼容,可以使用MS SOAP CLIENT组件。最后的调用方法,三条语句(javascript) var tmp = new ActiveXObject("MSSOAP.SoapClient"); tmp.mssoapinit("http://yourdomain/yourservice.asmx?WSDL"); rs = tmp.yourWebServiceMethod(); //这里调用的就是WEB SERVICE的方法,假如该方法返回的对象是Recordset那么rs就是一个Recordset实例。
太感谢大家的支持! 关于datagrid的delete的询问框,刚刚有了新的进展。代码如下: <script> function click(e){ if (event.srcElement.outerText=="Dele") event.returnValue=confirm("are you sure?"); } document.onclick=click; </script>
例如,datagrid的delect事件,常理,应该弹出对话框,供用户选择是否删除,但是用script和aspx结合的方法实在烦琐啊,至少要添加一个保存状态的控件,药用到javascript的_dopostback(),还要在按下del的事件中添加一大串的脚本语句,通过他们来改变和记住用户的选择,最后,利用dopostback来触发aspx的del事件,判断用户的选择,做出处理。
你看看,功能是实现了!可是,方法也太麻烦了!
所以,提出来,供大家讨论!
希望用更好的方法来实现!
string str;
str = "<script language = javascript>";
str += "alert('kent')";
str += "</script>";
然后有Page.RegisterClientScriptBlock("key",str);
或用Page.RegisterStartupScript("key",str);
这种方法不好控制,用户可能会选y or n。to runmin(*^_^*) :
可否详细些??
var tmp = new ActiveXObject("MSSOAP.SoapClient");
tmp.mssoapinit("http://yourdomain/yourservice.asmx?WSDL");
rs = tmp.yourWebServiceMethod(); //这里调用的就是WEB SERVICE的方法,假如该方法返回的对象是Recordset那么rs就是一个Recordset实例。
例如自定义一个实现IPostBackEventHandler的UrerControl
例如实例ID是MyCtrl1然后调用 __doPostBack("MyCtrl1",stringWhatTheServerWouldDo)
当然,这样页面要刷新一次的。在服务器MyCtrl的实现里:delegate void MyEventHandler(object sender,MyEventArgs e);
private object _myevent=new Object();
public event MyEventHandler MyEvent
{
add
{
Events.AddHandler(_myevent,value);
}
remove
{
Events.RemoveHandler(_myevent,value);
}
}
public void RaisePostBackEvent(string eventArgument)
{
//现在eventArgument就是和stringWhatTheServerWouldDo一样的值
OnMyEvent(this,new MyEventArgs(eventArgument));
}
protected virtual void OnMyEvent(object sender,MyEventArgs e)
{
MyEventHandler theDelegate=(MyEventHandler)Events[_myevent];
if(theDelegate!=null)theDelegate(sender,e);
}//MyEventArgs就很简单和次要了。我就不继续写了。。
------------
如果你不想刷新页面,应该使用WebService.
public delegate void MyEventHandler(object sender,MyEventArgs e);关联上MyCtrl的MyEvent,处理MyEventArgs中的string,
就可以知道客户端传上来的字符串。
分析字符串,而做不同的东西。事实上asp.net很多东西都是这个模型的。
例如DataGrid的edit,update,cancel,delete命令都是这样传上去给DataGrid分析,然后触发EditCommand等事件
非常感谢啊!to Lostinet(迷失网络):
看来我要好好研究server的东东了!,你写的我代码我可以看懂一些,可是这和__doPostBack("MyCtrl1",stringWhatTheServerWouldDo)
的调用有联系吗??
http://expert.csdn.net/Expert/topic/1213/1213430.xml?temp=.8159296
还请关注!
DataGrid的edit...等是通过子控件的事件来触发的。
调用javascript 的dopostback的方法我知道,还想听您解释一下关于server
端:
自定义一个实现IPostBackEventHandler的UrerControl。
这个我不是太明白,这和客户端的事件如何响应啊????
至于web services,虽然很好的东西,不过在2年之内大多数网站开发还是用不到的。
2.LOSTINET讲的是不是有点WEB FORM的味道啊?
关于datagrid的delete的询问框,刚刚有了新的进展。代码如下:
<script>
function click(e){
if (event.srcElement.outerText=="Dele")
event.returnValue=confirm("are you sure?");
}
document.onclick=click;
</script>
注:dataagrid的del的text=“Dele”。
html
---------------------------------
function DoAsk(Word)
{
return confirm(Word);
}
----------------------------------
aspx
----------------------------------
btn.Attributes["OnClick"]="return DoAsk('确认删除该记录?(将会删除所有与该职员相关的记录,且不可恢复!)')";
------------------------------------------