您的位置:首页 > 编程语言 > ASP

js+ asp.Net ajax开发163邮箱效果(列表底色、多选拖动等)--checkBox多选

2007-07-29 15:18 651 查看
163邮件一个比较爽的功能就是
可以通过多选邮件,拖动到左侧的文件夹列表,实现邮件归类的功能
关于我对拖动分配的实现将在后文写出
这里说说在CheckBox的选择中做得尝试和实现的效果、方法

1。点击表格Title实现全选每行
这个早有人做了,我这里借鉴一下 一块贴出来方便大家看
js事件:

function clkAll(myTable,ck)
<asp:TemplateField>
<HeaderTemplate>
<input id="Checkbox2" type="checkbox" onclick="clkAll('grvProjList',this)" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chbox" runat="server" />
</ItemTemplate>

2。点击GridView每行,实现选中当前行,按住shift实现多选
在JS里,事件有个Bubble过程,大致就是元素的事件(click等)
会先触发当前元素的事件,然后触发上级元素事件

<body onclick="alert('1')">
<input onclick="alert('2')">
</body>
点击文本框将依次提示 2 ,1

因此,点击GridView每行,实现选中当前行,只要考虑对TR元素进行onclick事件处理即可
完整的js代码如下:

function clk(obj,event)
protected void grvProjList_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowIndex % 2) == 0)
{
e.Row.Attributes.Add("originalcolor", System.Drawing.ColorTranslator.ToHtml(grvProjList.RowStyle.BackColor));
e.Row.Attributes.Add("onmouseout", "mou(this,'" + System.Drawing.ColorTranslator.ToHtml(grvProjList.RowStyle.BackColor) + "')");
}
else
{
e.Row.Attributes.Add("originalcolor", System.Drawing.ColorTranslator.ToHtml(grvProjList.AlternatingRowStyle.BackColor));
e.Row.Attributes.Add("onmouseout", "mou(this,'" + System.Drawing.ColorTranslator.ToHtml(grvProjList.AlternatingRowStyle.BackColor) + "')");
}

e.Row.Attributes.Add("onmouseover", "mov(this)");

e.Row.Attributes.Add("onclick", "clk(this,event)");

e.Row.Attributes["style"] = "Cursor:hand";
}
}

对于按住Ctrl实现多选,没有必要实现,因为不同于windows的单击单选,
gridView本来就是按住ctrl的效果了(单击增加、删除选择)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐