如何在按钮onClick事件之后继续显示:内联?

时间:2019-03-26 06:49:15

标签: c# asp.net

我使用按钮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");
                }

1 个答案:

答案 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属性。