如何在asp.net中的同一控件上添加两个ajax扩展器

时间:2013-09-06 11:18:18

标签: asp.net ajax

我有一个下拉列表和一个文本框。 dropdownlist中有2个listitem,一个是name,另一个是date。我在文本框中添加了自动完成扩展程序和日历控件扩展程序。 因为从dropdownlist中选择值后,用户必须在文本框中写入。我想当用户选择名称自动完成扩展器工作时,当用户选择日期然后点击文本框时,会出现日历(即,日历扩展器工作) 任何帮助都将得到满足

1 个答案:

答案 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”在你的下拉列表中。我希望这有帮助!在我看来,这将是最简单的解决方案!