asp.net – 使用codebehind显示隐藏div

前端之家收集整理的这篇文章主要介绍了asp.net – 使用codebehind显示隐藏div前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个DropDownList,我试图显示一个div OnSelectedIndexChanged,但它表示需要OBJECT。

我绑定在该div中的DataList:

ASPX:

<asp:DropDownList runat="server" ID="lstFilePrefix1" AutoPostBack="True" 
                  OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" >
  <asp:ListItem Text="Prefix1" Value="Prefix1" />
  <asp:ListItem Text="Prefix2" Value="Prefix2" />
  <asp:ListItem Text="Prefix3" Value="Prefix3" />
  <asp:ListItem Text="Prefix1 and Prefix2" Value="Prefix1 and Prefix2" />
  <asp:ListItem Text="Prefix2 and Prefix3" Value="Prefix2 and Prefix3" />
</asp:DropDownList>

<asp:DataList ID="DataList1" runat="server" RepeatColumns="4"  
              CssClass="datalist1"  OnItemDataBound="SOMENAMEItemBound"
              CellSpacing="6" onselectedindexchanged="DataList1_SelectedIndexChanged" 
              HorizontalAlign="Center" Width="500px">

代码背后:

protected void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)
{
    if (lstFilePrefix1.SelectedItem.Text=="Prefix2")
    {
        int TotalRows = this.BindList(1);
        this.Prepare_Pager(TotalRows);
        Page.ClientScript.RegisterClientScriptBlock(GetType(),"JScript1","ShowDiv('data');",true);
    }
}

JavaScript的:

function ShowDiv(obj)
{
     var dataDiv = document.getElementById(obj);
     dataDiv.style.display = "block";
}

我究竟做错了什么?

解决方法

做div
runat="server"

和做

if (lstFilePrefix1.SelectedValue=="Prefix2")
{
    int TotalRows = this.BindList(1);
    this.Prepare_Pager(TotalRows);
    data.Style["display"] = "block";
}

您的方法不工作,因为在渲染div之前,JavaScript正在渲染在body标签的顶部。您必须包含代码来告诉JavaScript等待DOM完全准备好接受您的请求,这可能是最简单的jQuery。

猜你在找的asp.Net相关文章