如何在服务器端响应ListBox的ondbclick事件?

gui1401 2004-09-15 10:36:15
在双击ListBox时,我想在服务器端对选定项处理,如何实现?
1、ListBox没有ondbclick事件,是否只能通过客户端脚本触发?
2、客户端脚本如何调用服务器端的方法?
3、我想在客户端调用__doPostBack(eventTarget, eventArgument)返回到服务器,__doPostBack的两个参数如何使用?eventTarget是此ListBox的ClintID,eventArgument呢?
...全文
191 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
strXiaoCaiNiao 2004-09-15
  • 打赏
  • 举报
回复
不清楚,帮你UP
可不可以自定义ondbclick事件
gui1401 2004-09-15
  • 打赏
  • 举报
回复
谢谢
morality 2004-09-15
  • 打赏
  • 举报
回复
不清楚,帮你顶一下
gui1401 2004-09-15
  • 打赏
  • 举报
回复
都去休息了?郁闷啊
gui1401 2004-09-15
  • 打赏
  • 举报
回复
怎么没人了,高手快进来 啊
gui1401 2004-09-15
  • 打赏
  • 举报
回复
TO; nswhy(南山翁),
直接在其事件中写你的程序
其事件是什么事件?
ListBox没有ondbclick事件!
nswhy 2004-09-15
  • 打赏
  • 举报
回复
直接在其事件中写你的程序
yingshis 2004-09-15
  • 打赏
  • 举报
回复
up
gui1401 2004-09-15
  • 打赏
  • 举报
回复
楼上,我知道可以用客户端脚本实现,可我的页面还有按钮,提交后没法保存客户端所做的修改
jeffrey_rui 2004-09-15
  • 打赏
  • 举报
回复
如果只是为了将List里的记录删除和移动,完全可以用javascript实现。
cs:
listAll.Attributes["ondblclick"] = "javascript:addSrcToDestList();";
listBoss.Attributes["ondblclick"] = "javascript:deleteFromDestList();";

html:
<script language="JavaScript">
<!--
function addSrcToDestList() {
listBoss = window.document.forms[0].listBoss;
listAll = window.document.forms[0].listAll;
var len = listBoss.length;
for(var i = 0; i < listAll.length; i++) {
if ((listAll.options[i] != null) && (listAll.options[i].selected)) {
var found = false;
for(var count = 0; count < len; count++) {
if (listBoss.options[count] != null) {
if (listAll.options[i].text == listBoss.options[count].text) {
found = true;
break;
}
}
}
if (found != true) {
listBoss.options[len] = new Option(listAll.options[i].text,listAll.options[i].value);
len++;
}
}
}
window.document.forms[0].txtHidden.value='';
for(var i = (len-1); i >= 0; i--)
{
window.document.forms[0].txtHidden.value+=listBoss.options[i].value+',';
}
}

function deleteFromDestList()
{
var listBoss = window.document.forms[0].listBoss;
var len = listBoss.options.length;
window.document.forms[0].txtHidden.value='';
for(var i = (len-1); i >= 0; i--)
{
if ((listBoss.options[i] != null) && (listBoss.options[i].selected == true))
{
listBoss.options[i] = null;
}
else
window.document.forms[0].txtHidden.value+=listBoss.options[i].value+',';
}
}


// -->
</script>
<asp:TextBox id="txtHidden" runat="server" Height="0px" Width="0px"></asp:TextBox>
txtHidden建立起list当前内容和cs之间的联系
noahart 2004-09-15
  • 打赏
  • 举报
回复
刚小试了一下,你可以使用Html的Listbox控件上实现!
html:
<SELECT size="9" runat="server" id="ListBox1" ondblclick="getitem()" style="WIDTH: 80px; HEIGHT: 150px">
</SELECT>
必须加入runat="server"

js: 显示被双击的item的index
<script>
function getitem()
{
var item=document.activeElement.getAttribute("SelectedIndex");
alert(item);
}
</script>

cs:
protected System.Web.UI.HtmlControls.HtmlSelect ListBox1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
BuildListBox();
}
}
private void BuildListBox()
{
ListItem item1 = new ListItem("Red", "Red");
ListItem item2 = new ListItem("Blue", "Blue");
ListBox1.Items.AddRange(new ListItem[]{ item1, item2});
//加入两个item
}

listhome 2004-09-15
  • 打赏
  • 举报
回复
要不你就重写一个LIstbox
继承ListBox
加入ONdbclick事件

还有一个更简单的方法

加入一个服务器控件,设为不可见

用Js触发点击事件
noahart 2004-09-15
  • 打赏
  • 举报
回复
ListBox中没有ondbclick事件
你可以加删除和移动按钮
wolve 2004-09-15
  • 打赏
  • 举报
回复
楼上的是一个解决办法。最好是写一个listbox的子类来实现,只要加一个事件就可以了,很简单的
henryfan1 2004-09-15
  • 打赏
  • 举报
回复
添加一个按钮,然后注册listbox的客户端事件回调BUTTON的事件
combo.Attributes.Add("onpropertychange",this.Page.GetPostBackEventReference(lb));
combo是一个控件,lb是一个BUTTON
tianjue0921 2004-09-15
  • 打赏
  • 举报
回复
加按钮不就行了
gui1401 2004-09-15
  • 打赏
  • 举报
回复
我就是想将List里的记录删除和移动
问题是
1。客户端实现,保存状态麻烦,页面已提交就丢失状态了
2。服务器端实现,不知如何响应ondbclick事件
请高手进来指点一下,说一下思路也行
gui1401 2004-09-15
  • 打赏
  • 举报
回复
怎么自定义ondbclick事件?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧