我现在有一个datalist 里面存放着数据  当点击其中的一项时 就获取到数据,用JS显示到页面的一个层中,但是每次进行第二次选择数据时 就会刷新页面(触发了datalist中的事件)。以前的数据也没有了,现在我希望能够获取到数据并且也能够不刷新页面 但是层中的数据也能够更新。急等中!!!

解决方案 »

  1.   

    自己先顶哈  随便说下 我用了updatepanel 但是没有预期的效果 请各位指点!!!
      

  2.   

    updatepanel 可以实现啊,你把代码贴出来看看
      

  3.   

     <asp:UpdatePanel UpdateMode="Conditional" runat="server" ID="up1" ChildrenAsTriggers="false">
                <ContentTemplate>
                    <div class="printdiv" id="divinner" runat="server">
                    </div>
                </ContentTemplate>
                <Triggers>
                    <asp:PostBackTrigger ControlID="lbldizhi" />//这个控件 现在是随便指定的
                </Triggers>
            </asp:UpdatePanel>其他 代码 就是一个点击事件
      protected void lbtDelmat_Command(object sender, CommandEventArgs e)
        {
    //获取值 然后绑定到文本框
    }
      

  4.   


    这话太空了,所以不知道该回答什么实际内容。不过其实如果你没有比较复杂的、必须服务器操作的交互操作,大多数情况下并不需要updatepanel。假设使用updatepanel的话,那么应该把你的DataList放在ContentTemplate里边,然后在你说的“点击一项”的服务器端事件处理程序中,通过ScriptManager.RegisterStartupScript(......)方法输出一条(或者多条)javascript语句来让浏览器端调用你的“显示到一个层中”方法。在形成这条javascript语句时,把服务器端从DataList当前行(或者你所说的被点击项)所获得数据拼接到这个javascript语句中,传递给调用你的javascript显示层的函数作为参数。
      

  5.   

    把DataList,或者你说的被点击项放在UpdatePanel的ContentTemplate中都可以。后者更好一点。
      

  6.   

    点击按钮通过JS获取数据,修改div.innerhtml
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" RenderMode="Inline" UpdateMode="Conditional">
    <ContentTemplate> 
    <asp:DataList ...></asp:DataList>
    </asp:UpdatePanel>UpdatePanel1.Update();