为什么不用服务器端控件呢或者可以写javascrit

解决方案 »

  1.   

    <%@ Page language=vb%>
    <HTML>
    <HEAD>
    <script language="VB" runat="server">       Sub Apply_Click(sender As Object, e As EventArgs) 
              Span1.Style("background-color") = ColorSelect.Value
           End Sub        Sub AddToList_Click(sender As Object, e As EventArgs) 
              ColorSelect.Items.Add(Text1.Value)
           End Sub
           
    </script>
    </HEAD>
    <body>
    <h3><font face="宋体">简单的 HtmlSelect 示例</font></h3>
    <form runat="server" ID="Form1">
    选择颜色:<br>
    <select id="ColorSelect" runat="server" NAME="ColorSelect">
    <option selected>SkyBlue</option>
    <option>lightgreen</option>
    <option>Gainsboro</option>
    <option>LemonChiffon</option>
    </select>
    <input type="button" runat="server" Value="应用" OnServerClick="Apply_Click" ID="Button1" NAME="Button1">
    <p>
    没有在上面的列表中看到您的颜色吗?您可以在此处添加:<br>
    <input type="text" id="Text1" runat="server" NAME="Text1"> <input type="button" runat="server" Value="添加到列表" OnServerClick="AddToList_Click" ID="Button2" NAME="Button2">
    <p>
    <span id="Span1" runat="server">点击按钮将背景颜色应用到此处。</span>
    </form>
    </P>
    </body>
    </HTML>
      

  2.   

    不能用,这几个控件只是页面的一部分,其他控件需要进行有效验证,但如果用服务器端控件,就在我不想验证其他控件的时候提前验证了,所以Add Button必须是Html的,但我不知道JavaScript怎么写,因为我只知道服务器端的ListBox的名称,而并不知道怎么用JavaScript把内容加到服务器端的ListBox中去。
      

  3.   

    liyunsong2000:
      原来可以直接在JavaScript中引用服务器端控件的名称。真是太谢谢了,我试试看。试完给分
      

  4.   

    liyunsong2000:
      我刚才看错了,你用的是服务器端代码,我说过不能用服务器端代码,唉!!!
      

  5.   

    上面有人写出来了,你参照他的方法,把LISTBOX改为。NET控件,试试看
      

  6.   

    可以用Javascript来实现!
    如果Button是RunAtServer,则:Javascript写在Page_Load事件中
    ButtonID.attributes("onclick")=javascript
    否则,在Button的onclick中直接写Javascript
      

  7.   

    问题是我不知道JavaScript该怎么写,有谁能详细告诉我怎么能在HTML中往一个Server端的ListBox中加内容?
      

  8.   

    function Btn_AddUser_onclick() {
         if(document.WebForm1.Ltb_huiqian.selectedIndex != null){
         var option = document.WebForm1.Ltb_huiqian.options[document.WebForm1.Ltb_huiqian.selectedIndex];
         document.WebForm1.Ltb_huiqian.remove(option.index);
         document.WebForm1.Ltb_huiqianren.add(option);
         option.selected = false;
      }
    }
    这是把会签人员从一个列表(Ltb_hiuqian)添加到另外的一个列表(Ltb_huiqianren)的代码了。前者为服务器端控件,后者也是服务器控件。不过这不影响。如果是非服务器控件也一样的代码,直接写就行了。Ltb是服务器端的控件,所以在编写代码的时候,你写了DOCUMENT.WEBFOWM1之后你看不到Ltb_huiqian存在。不过你直接写就是了。没有问题,关于onclick你可以直接用编辑器上面选择客户端的Btn_AddUser,然后选择点击事件就行了。这样就可以添加了。不过有个非常大的问题,不知道是微软的BUG呢,还是没有被发现好的办法。希望是没有被发现。这个问题就是,在服务器端接受不到你传回来的数据。也就是说你在客户端用JAVASCRIPT添加了选项,在服务器端接受不到,因为它使用了VIEWSTATE,保存了状态。你的列表每次你在服务器端看到的都是空。当然,如果你是在服务端填充的数据到是可以保存。所以,微软的这些控件要求我们任何的操作,除了验证都要完全的在服务器端运行。否则就不行。
      

  9.   

    描述的够详细了,十分感谢,不过如果在服务器端读不到数据,那么也就失去意义了。所以,我想问你这样一个问题:
        在一个页面中有许多需要验证的Text控件,屏幕最下面有Submit按钮,当点击Submit按钮时提交页面上所有数据,但页面上除了Text控件以外还有一个Listbox控件,而且伴随着这个Listbox控件有一个Text控件和一个Add按钮,也就是说Listbox中的内容是由用户在Text控件输入内容然后点击Add按钮输入的。现在我的麻烦就出现了,当我把其它Text控件中的内容都正确填写之后再往Listbox中添加内容,当然不会出现任何问题,但是当我没有填写或错误填写其他Text中的内容而直接填写Listbox相关的Text控件然后点击Add按钮添加时,页面就会讨厌地先进行其他Text的有效验证,从而使我没有办法往Listbox中添加内容,而且Listbox中的内容还是要最终应用到服务器端的。
        这种情况我想各位大侠也会遇到,有没有标准的解决办法,提供给在下,不胜感激。
      

  10.   

    你的Add按钮是服务器控件吧,把它的causesValidation设为false它就不会导致验证事件发生了
      

  11.   

    谢谢XUPC,100分都给你,亲你一口,^_^