1

我有一个带有 <asp:ListView> 的 <div> - 带有搜索结果。我想隐藏这个 div,并在 ListView 已满时显示它(或者更好 - 当这部分代码完成时)

    lvSearchResult.DataSource = getSearchResult();
    lvSearchResult.DataBind();

我怎样才能做到这一点?同时,当这个带有列表视图的 <div> 不可见时,我想显示另一个带有“正在加载”信息的 div。当 ListView 准备就绪时,带有结果的 <div> 将显示出来,带有“正在加载”的 <div> 将被隐藏。

4

7 回答 7

1

像这样声明你的 div:

<div id="searchResultDiv" runat="server" visible="false">...</div>

<div id="loadingDiv" runat="server">...</div>

runat="server"使它们可以在您的 asp.net 代码中访问。

然后在您的代码中您可以更改它们的属性,在这种情况下更改Visibility

lvSearchResult.DataSource = getSearchResult();
lvSearchResult.DataBind();
searchResultDiv.Visible = true;
loadingDiv.Visible = false;
于 2012-07-18T08:25:49.557 回答
1

如果您使用的是更新面板,您可以使用类似于下面的代码来实现。这将在页面更新时在页面上显示一个模式面板。

您可以修改开始和结束请求方法来隐藏/显示包含列表视图的 div

请注意,这使用 jQuery。

    <div id="workingDialog" style="display: none" title="Please wait">
        <p>
           Loading Data
        </p>   
     </div>

<div id="listViewDiv" style="display:none">
//List View
</div>

<script>

var _workingDialog;


    //Page Load event
    function pageLoad(sender, args) {
        //Register events
        Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);

        _workingDialog = $('#workingDialog');
    }

    function beginRequest(sender, args) {
        $(_workingDialog).dialog({ modal: true });
        $('#listViewdiv').hide();
    }

    function endRequest(sender, args) {
        $(_workingDialog).dialog('close');
        $('#listViewdiv').show();
    }

</script>

http://wraithnath.blogspot.co.uk/2011/12/showing-modal-dialog-while-page-is.html

于 2012-07-18T08:29:13.410 回答
0

runat="server"在你的 div 中使用属性

然后根据任何条件,您可以显示或隐藏 div

<div runat="server" id="myDiv">


var result = getSearchResult();    

    if(result!= null){
        myDiv.Visible = true;
        lvSearchResult.DataSource = result;
        lvSearchResult.DataBind();
       }
于 2012-07-18T08:24:43.840 回答
0

根据您的列表,您可以制作一个广告 2 个 css 类的方法,一个用于列表已满时,一个用于其他情况。所以在一个 css 中你会有 display: none; 在另一个显示中:inline-block;

于 2012-07-18T08:24:46.037 回答
0

据我了解,您可以使用css吗?并设置 display:none 并在满足您的条件时将显示更改为阻止/显示?

希望这会有所帮助:http ://webdesign.about.com/od/dhtml/a/aa101507.htm

于 2012-07-18T08:25:27.770 回答
0

将 runat="server" 添加到 div,然后您可以设置 visible = false/true

于 2012-07-18T08:25:29.043 回答
-1

将 AJAX 与 UpdatePanel 一起使用,不是吗?那可行..

于 2012-07-18T08:24:43.793 回答