【ChinaBeta.Cn 网盟学院】
四、系统开发重难点解释
1、全局呢称与访问者的登陆时间设定
呢称与登陆时间在本系统一直贯穿始终,所有聊天信息的调用都必须根据这两个关键字段。由于.NET中的C#代码功能相当强大,这就使得我们不需要再像之前文章中将这两个关键值通过JS代码来实现,而且通过JS代码实现后的传值也不是很方便,那么我们将通过什么样的方式来实现呢?我们可以先在前台拖放两个文本框,作为传递关键值的一个媒介。为了使页面在回传时不会对呢称与登陆时间进行重新设置,我们还必须在页面加载时必须判断是否为客户端回发还是第一次加载。
代码如下:
if (!this.IsPostBack)
{
this.LoginTime.Text = DateTime.Now.ToString();
this.RndName.Text = ServerGetName();
this.nc.Text = this.RndName.Text;
}
public string ServerGetName() //生成默认呢称
{
string RndName = "LY" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
return RndName;
}
2、客户端调用服务器 style="COLOR: #000000" href="http://product.it168.com/files/0402search.shtml" target=_blank>服务器端函数
客户端是没有直接方式调用服务器 style="COLOR: #000000" href="http://server.it168.com/" target=_blank>服务器端函数,我们只能通过页面调用控件来进行页面PostBack回发,从而达到调用服务器端的函数。本系统中的关闭功能、快捷键(Alt+S)发送功能、聊天信息拖动滚动条时停止更新聊天信息的功能都用到此方法,下面我们就开始来看看这三个功能的具体实现方式:
① 关闭功能
关闭功能主要出现在Min0区与Max0区、主页面退出时发生。 其中主页退出时使用页面事件window.onunload来调用Min0区中的关闭按钮(Close)的事件函数。我们先看看关闭按扭的所引用的事件函数:
protected void close_Click(object sender, ImageClickEventArgs e)
{
closeEmsg(); //具体的处理程序略(源代码见文末打包下载)
}
其次添加如下JS代码:
function unloadpage()
{
__doPostBack("AnchorCall1$close","") //调用关闭按钮
}
我想很多朋友可能不明白上面这段代码,AnchorCall!$close为关闭按钮的name,我们可以通过运行页面,然后查看页的HTML源代码,可以看到close按钮的name为AnchorCall1$close,同样我们可能通过同样的方法来调用其它铵钮所触发的事件,例如存在某一个按钮为AnchorCall1$Button1,那么我们JS调用的代码则为:__doPostBack("AnchorCall1$Button1","")
② 快捷键(Alt+S)发送功能
通过前面的学习,我们不难写出此功能的代码,这里的代码主要通过调用发送按钮,我们通过页面源代码可以知道,发送按钮的名称为:AnchorCall1$ImageButton1,那么代码则为:__doPostBack("AnchorCall1$ImageButton1",""),由于我们快捷键的发送是通过按键来触发的,因此我们就必须将以上代码添加至onkeydown事件下。
代码如下:
this.fscontent.Attributes.Add("onkeydown", "keypress(event)");
JS代码keypress函数:
function keypress(event)
{
var keycode = event.keyCode?event.keyCode:event.which?event.which:event.charCode;
if((keycode==83)&&(event.altKey)){
__doPostBack("AnchorCall1$ImageButton1","");
}
}
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
(责任编辑:hahack)
|