<%@ 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
<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>
原来可以直接在JavaScript中引用服务器端控件的名称。真是太谢谢了,我试试看。试完给分
我刚才看错了,你用的是服务器端代码,我说过不能用服务器端代码,唉!!!
如果Button是RunAtServer,则:Javascript写在Page_Load事件中
ButtonID.attributes("onclick")=javascript
否则,在Button的onclick中直接写Javascript
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,保存了状态。你的列表每次你在服务器端看到的都是空。当然,如果你是在服务端填充的数据到是可以保存。所以,微软的这些控件要求我们任何的操作,除了验证都要完全的在服务器端运行。否则就不行。
在一个页面中有许多需要验证的Text控件,屏幕最下面有Submit按钮,当点击Submit按钮时提交页面上所有数据,但页面上除了Text控件以外还有一个Listbox控件,而且伴随着这个Listbox控件有一个Text控件和一个Add按钮,也就是说Listbox中的内容是由用户在Text控件输入内容然后点击Add按钮输入的。现在我的麻烦就出现了,当我把其它Text控件中的内容都正确填写之后再往Listbox中添加内容,当然不会出现任何问题,但是当我没有填写或错误填写其他Text中的内容而直接填写Listbox相关的Text控件然后点击Add按钮添加时,页面就会讨厌地先进行其他Text的有效验证,从而使我没有办法往Listbox中添加内容,而且Listbox中的内容还是要最终应用到服务器端的。
这种情况我想各位大侠也会遇到,有没有标准的解决办法,提供给在下,不胜感激。