0

我有一个下拉列表和一个文本框。下拉列表中有 2 个列表项,一个是名称,另一个是日期。我在文本框上添加了自动完成扩展器和日历控件扩展器。因为从下拉列表中选择值后,用户必须在文本框中写入。我希望当用户选择名称自动完成扩展器工作并且当用户选择日期然后在文本框中单击时出现日历(即日历扩展器工作)任何帮助都会被应用

4

1 回答 1

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 代码中设置两个文本框不可见。然后在选定的索引更改上插入下面的代码...

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

于 2013-09-06T20:21:36.723 回答