当前位置:编程学习 > C#/ASP.NET >>

asp:listbox无法获取options?

在一个ascx页面代码如下,在调用javascript的时候,无法获取asp:listbox服务器组件的options
<%@ Register TagPrefix="polymorphik" Namespace="Polymorphik.Web.UI.WebControls" Assembly="Polymorphik.Web.UI.WebControls" %>
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="CtrlProtocolRight.ascx.cs" Inherits="Polymorphik.PolyMedic.Central.CtrlProtocolRight" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<LINK href="Default.css" type="text/css" rel="stylesheet">
<script language="javascript" src="../Javascript/utils.js"></script>
<script language="javascript">
     function addSelectedGroup()
            {
                var lstGroup;
                var lstMember;
                var i;
                var items;
                var newMember;
                
                lstGroup = getRef("lstNonMember");
                lstMember = getRef("lstMember");
                
                items = lstGroup.options;
                
                for (i = 0; i < items.length; i++)
                {
                    if (items(i).selected)
                    {
                        newMember = document.createElement("OPTION");
                        newMember.value = items(i).value;
                        newMember.text = items(i).text;
                        lstMember.add(newMember);
                    }
                }
                
                for (i = items.length - 1; i >= 0; i--)
                {
                    if (items(i).selected)
                    {
                        lstGroup.remove(i);
                    }
                }
            }
        
            function removeSelectedMember()
            {
                var lstGroup;
                var lstMember;
                var i;
                var j;
                var items;
                var newGroup;
                
                lstGroup = getRef("lstNonMember");
                lstMember = getRef("lstMember");
                
                items = lstMember.options;
                
                for (i = 0; i < items.length; i++)
                {
                    if (items(i).selected)
                    {
                        newGroup = document.createElement("OPTION");
                        
                        newGroup.value = items(i).value;
                        newGroup.text = items(i).text;;
                        lstGroup.add(newGroup);
                    }
                }
                
                for (i = items.length - 1; i >= 0; i--)
                {
                    if (items(i).selected)
                    {
                        lstMember.remove(i);
                    }
                }
            }
            
            function selectAllGroup()
            {
                var lstGroupr;
                var i;
                
                lstGroup = getRef("lstNonMember");
                
                for (i = 0; i < lstGroup.options.length; i++)
                    lstGroup.options(i).selected = true;
            }
            
            function selectAllMember()
            {
                var lstMember;
                var i;
                
                lstMember = getRef("lstMember");
                
                for (i = 0; i < lstMember.options.length; i++)
                    lstMember.options(i).selected = true;
            }
            
            function addAllGroup()
            {
                selectAllGroup();
                addSelectedGroup();
            }
            
            function removeAllMember()
            {
                selectAllMember();
                removeSelectedMember();
            }
</script>
<TABLE id="Table1">
<TR>
<TD>
<table width="100%">
<tr>
<td align="left" colspan="2"><asp:label id=lblProtocolName Text='<%# DataBinder.Eval(m_ProtocolDataSet, "Tables[Protocol].DefaultView.[0].ProtocolName") %>' runat="server" CssClass="title1"></asp:label></td>
<td></td>
</tr>
<tr>
<td align="right" width="20%"><asp:label id="lblCreater" runat="server" Font-Bold="True">CreatedBy :</asp:label></td>
<td colspan="2"><asp:label id=lblCreatedBy Text='<%# DataBinder.Eval(m_ProtocolDataSet, "Tables[Protocol].DefaultView.[0].CreatedBy") %>' runat="server" Font-Bold="True"></asp:label></td>
</tr>
<tr>
<td align="right" width="20%"><asp:label id="lblCreatTime" runat="server" Font-Bold="True">CreatedDate :</asp:label></td>
<td colspan="2"><asp:label id=lblCreatedDate Text='<%# DataBinder.Eval(m_ProtocolDataSet, "Tables[Protocol].DefaultView.[0].CreatedDate") %>' runat="server" Font-Bold="True"></asp:label></td>
</tr>
<tr>
<td align="right" width="20%"><asp:label id="lblModifer" runat="server" Font-Bold="True">ModifiedBy :</asp:label></td>
<td colspan="2"><asp:label id="lblModifiedBy" Text='<%# DataBinder.Eval(m_ProtocolDataSet, "Tables[Protocol].DefaultView.[0].ModifiedBy") %>' runat="server" Font-Bold="True"></asp:label></td>
</tr>
<tr>
<td align="right" width="20%"><asp:label id="lblModifyTime" runat="server" Font-Bold="True">ModifiedDate :</asp:label></td>
<td colspan="2"><asp:label id="lblModifiedDate" Text='<%# DataBinder.Eval(m_ProtocolDataSet, "Tables[Protocol].DefaultView.[0].ModifiedDate") %>' runat="server" Font-Bold="True"></asp:label></td>
</tr>
</table>
</TD>
</TR>
<TR>
<TD>
<TABLE id="Table2" cellSpacing="0" cellPadding="0">
<TR>
<TD width="10%"></TD>
<TD class="fieldGroupHeader" noWrap>Non Members</TD>
<TD align="center" width="55"></TD>
<TD noWrap><SPAN class="fieldGroupHeader">Members</SPAN></TD>
</TR>
<TR>
<TD></TD>
<TD noWrap>
<asp:listbox id="lstNonMember" runat="server" CssClass="defaultTextbox" SelectionMode="Multiple" Rows="10" DataValueField="GroupID" DataTextField="GroupName" DataMember="Group" DataSource="<%# m_GroupDataSet %>" Width="180px">
</asp:listbox></TD>
<TD align="center" width="55">
<INPUT id="btnAdd" style="WIDTH: 32px; HEIGHT: 24px" onclick="addSelectedGroup()" type="button"
value=">" name="btnAdd"><BR>
<INPUT id="btnAddAll" style="WIDTH: 32px; HEIGHT: 24px" onclick="addAllGroup()" type="button"
value=">>" name="btnAddAll"><BR>
<INPUT id="btnRemove" style="WIDTH: 32px; HEIGHT: 24px" onclick="removeSelectedMember()"
type="button" value="<" name="btnRemove"><BR>
<INPUT id="btnRemoveAll" style="WIDTH: 32px; HEIGHT: 24px" onclick="removeAllMember()"
type="button" value="<<" name="btnRemoveAll"></TD>
<TD noWrap><SELECT class="defaultTextbox" id="lstMember" style="WIDTH: 180px" multiple size="10" name="lstMember"
runat="server"></SELECT></TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD></TD>
</TR>
</TABLE>

--------------------编程问答-------------------- getRef 这个函数怎么写的 --------------------编程问答-------------------- getRef是这样一的
function getRef(id)
{
if (isIE) return document.all[id];
if (isNS) return document.layers[id];
} --------------------编程问答-------------------- 你查看一下 通过getRef返回的对象是否为null
对于ascx页面,当放到aspx页面后,ascx中的Id(or name?)会被更改 --------------------编程问答-------------------- 搞定,谢谢楼上的,是要用getRef("lstNonMember").ClientID;
没取到options的原因是原来的getRef("lstNonMember")是取的服务器端ID;
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,