我使用按钮onClick来激活文本框2的display:inline,并使用“更新”面板中dropdownlist1的onchange事件将其拖放到服务器上。
读取服务器的page_load部分中的dropdownlist1的值以继续显示:发生dropdownlist2和textbox2按钮onclick事件的内联处理,并且呈现页面并将其再次处理为display:none。
调试确认正确输入了dropdownlist1值并执行了dropdownlist2的display:inline代码,我不知道为什么。
script
function DisplayDate(ddlDate) {
var Control = document.getElementById(ddlDate.id);
if (Control.value == 2) {
document.getElementById('ctl00_ContentPlaceHolder1_ddlSearch_Date').style.display = 'inline';
}
else {
document.getElementById('ctl00_ContentPlaceHolder1_ddlSearch_Date').style.display = 'none';
document.getElementById('ctl00_ContentPlaceHolder1_txtDate1').style.display = 'none';
document.getElementById('ctl00_ContentPlaceHolder1_txtDate2').style.display = 'none';
}
}
aspx
<asp:UpdatePanel ID="updSearch" runat="server">
<ContentTemplate>
<div>
<asp:DropDownList ID="ddlSearch_Type" runat="server" CssClass="btn btn-outline btn-primary dropdown-toggle" onchange="DisplayDate(this)">
</asp:DropDownList>
<asp:DropDownList ID="ddlSearch_Date" runat="server" CssClass="btn btn-outline btn-primary dropdown-toggle" Style="display: none;">
</asp:DropDownList>
<asp:TextBox ID="txtDate1" runat="server" placeholder="Search..." TextMode="Date" CssClass="form-control text-1" Width="150px" Style="text-align: center; display: none;"></asp:TextBox>
<asp:TextBox ID="txtDate2" runat="server" placeholder="Search..." TextMode="Date" CssClass="form-control text-1" Width="150px" Style="text-align: center; display: none;"></asp:TextBox>
<asp:LinkButton ID="lnkSearch2" runat="server" OnClientClick="Searching();" CssClass="btn btn-primary text-1 p-2" Style="height: 37px; text-align: center; display: inline;"><i class="fas fa-search m-0"></i></asp:LinkButton>
</div>
</ContentTemplate>
</asp:UpdatePanel>
page_load
if(ddlSearch_Type.SelectedValue == "1")
{
ddlSearch_Type.Attributes.Add("display", "inline");
txtDate1.Attributes.Add("display", "inline");
txtDate2.Attributes.Add("display", "inline");
}
答案 0 :(得分:1)
代替您的代码
if(ddlSearch_Type.SelectedValue == "1")
{
ddlSearch_Type.Attributes.Add("display", "inline");
txtDate1.Attributes.Add("display", "inline");
txtDate2.Attributes.Add("display", "inline");
}
您需要将其更改为
if(ddlSearch_Type.SelectedValue == "1")
{
ddlSearch_Type.Style.Add("display", "inline");
txtDate1.Style.Add("display", "inline");
txtDate2.Style.Add("display", "inline");
}
因为显示是样式属性,而不是html属性。