我有一个下拉列表和一个文本框。 dropdownlist中有2个listitem,一个是name,另一个是date。我在文本框中添加了自动完成扩展程序和日历控件扩展程序。 因为从dropdownlist中选择值后,用户必须在文本框中写入。我想当用户选择名称自动完成扩展器工作时,当用户选择日期然后点击文本框时,会出现日历(即,日历扩展器工作) 任何帮助都将得到满足
答案 0 :(得分:0)
我建议使用http://www.asp.net/ajaxlibrary/ajaxcontroltoolkitsamplesite/
中的AjaxControlToolkit然后,如果要添加多个,则只需引用targetControlID。这是我与我的一起做的一个例子。
<asp:TextBox ID="tbAddDealDate" runat="server" Width="80px" Wrap="False" CausesValidation="false"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender ID="tbAddDealDate_MaskedEditExtender" runat="server"
Enabled="True" TargetControlID="tbAddDealdate" Mask="99/99/9999" MaskType="Date" AutoComplete="True" ClearMaskOnLostFocus="true">
</ajaxToolkit:MaskedEditExtender>
<ajaxToolkit:CalendarExtender
ID="CalendarExtenderAddDealDate"
TargetControlID="tbAddDealDate"
runat="server" />
该网站有一些非常好的源代码示例,对我来说非常有帮助,我敢肯定。
编辑:对不起,我看错了。我要做的是使用两个文本框并隐藏其中一个。例如,如果用户选择日期,则显示使用日历扩展程序的文本框。如果用户选择名称,则自动填充功能文本框。我就是这样做的。这是我将使用的代码。我会在asp代码中设置两个文本框不可见。然后在Selected index change上插入下面的代码......protected void ddlDropDownList_SelectedIndexChanged(object sender, Eventargs e)
{
if(ddlDropDownList.Text == "Date")
{
tbCalendar.Visible = true;
tbName.Visible = false;
}
else if (ddlDropDownList.Text == "Name")
{
tbCalendar.Visible = false;
tbName.Visible = true;
}
}
同样在你的asp中,你需要让AutoPostBack =“true”并将你的OnSelectedIndexChanged方法放在那里,所以OnSelectedIndexChanged =“ddlDropDownList_SelectedIndexChanged”在你的下拉列表中。我希望这有帮助!在我看来,这将是最简单的解决方案!