
























功能简介:最近在做个凭证单子,里面的一些编辑框是需要联想功能的。
功能实现:在AJAX功能的吸引下,我GOOGLE到了MS开发的ASP.NET 2.0 AJAX Extensions 1.0是基于.NET FRAMEWORK 2.0开发的,正合我意,下面利用AutoCompleteExtender控件来实现我需要的功能
部分主要代码如下:
HTML界面代码
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" MinimumPrefixLength="1"
CompletionInterval="300"
EnableCaching="true"
CompletionSetCount="10"
BehaviorID="AutoCompleteEx" runat="server" ServiceMethod="GetCompletionList"
UseContextKey="True" TargetControlID="TextBox1">
<Animations>
<OnShow>
<Sequence>
<OpacityAction Opacity="0" />
<HideAction Visible="true" />
<ScriptAction Script="
// Cache the size and setup the initial size
var behavior = $find('AutoCompleteEx');
if (!behavior._height) {
var target = behavior.get_completionList();
behavior._height = target.offsetHeight - 2;
target.style.height = '0px';
}" />
<Parallel Duration=".1">
<FadeIn />
<Length PropertyKey="height" StartValue="0" EndValueScript="$find('AutoCompleteEx')._height" />
</Parallel>
</Sequence>
</OnShow>
<OnHide>
<Parallel Duration=".1">
<FadeOut />
<Length PropertyKey="height" StartValueScript="$find('AutoCompleteEx')._height" EndValue="0" />
</Parallel>
</OnHide></Animations>
</cc1:AutoCompleteExtender>
<script type="text/javascript">
// Work around browser behavior of "auto-submitting" simple forms
var frm = document.getElementById("aspnetForm");
if (frm) {
frm.onsubmit = function() { return false; };
}
</script>
<input type="submit" style="display:none;" />
</div>
验证代码(CS)如下:
public string[] GetAutoComplete(string prefixText, int count)
{
string xm = "";
string fixxm = "";
if (count == 0)
{
count = 10;
}if (prefixText.Equals("我"))
{
return new string[0];
}
List
<string> items = new List<string>(count);ClassLibrary.SzsData.szsDataTable sd
= new ClassLibrary.SzsData.szsDataTable();控件存在的BUG:如果需要返回数字类型的,结果会在编辑框下显示UNDEFINE,也许是JAVASCRIPT中的单引出现的问题,所以例如下面的方法:
public string[] GetStringLength(string prefixText)
{
string[] items = new string[10];
items[0] = prefixText.Length.ToString();
return items;
}
则需修改为以下:
public string[] GetStringLength(string prefixText)
{
string[] items = new string[10];
items[0] = "'"+prefixText.Length.ToString()+"'";
return items;
}
希望下次MS在发布该组控件同时能解决此BUG。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。