在双击ListBox时,我想在服务器端对选定项处理,如何实现?
1、ListBox没有ondbclick事件,是否只能通过客户端脚本触发?
2、客户端脚本如何调用服务器端的方法?
3、我想在客户端调用__doPostBack(eventTarget, eventArgument)返回到服务器,__doPostBack的两个参数如何使用?eventTarget是此ListBox的ClintID,eventArgument呢?
1、ListBox没有ondbclick事件,是否只能通过客户端脚本触发?
2、客户端脚本如何调用服务器端的方法?
3、我想在客户端调用__doPostBack(eventTarget, eventArgument)返回到服务器,__doPostBack的两个参数如何使用?eventTarget是此ListBox的ClintID,eventArgument呢?
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之间的联系
直接在其事件中写你的程序
其事件是什么事件?
ListBox没有ondbclick事件!
可不可以自定义ondbclick事件
问题是
1。客户端实现,保存状态麻烦,页面已提交就丢失状态了
2。服务器端实现,不知如何响应ondbclick事件
请高手进来指点一下,说一下思路也行
combo.Attributes.Add("onpropertychange",this.Page.GetPostBackEventReference(lb));
combo是一个控件,lb是一个BUTTON
你可以加删除和移动按钮
继承ListBox
加入ONdbclick事件还有一个更简单的方法加入一个服务器控件,设为不可见用Js触发点击事件
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
}