本帖最后由 great_king 于 2009-08-10 16:10:54 编辑

解决方案 »

  1.   

    ModalPopupExtender其实本来就只能算个js控件,根本没任何服务器端的操作
    asp.net的几十个组件里面大部分都这么鸡肋,拿着js控件来冒充ajax控件要实现你说的功能,ModalPopupExtender实现的是一个弹出对话框的功能,而对话框里面你需要异步读取数据显示出来则需要另外再用控件实现,可以嵌入一个updatepanel
      

  2.   

    异步读取数据,这个我也想过,不过难点在于,如何利用JavaScript将前台的id传到后台中用于查询。例如要调用一个函数select(id)来查询并返回结果。<%=select(id)%>。id是页面中JavaScript函数取得的传入参数,执行后所以报错。<% %>中间好像只能接受c#语句,不能接受页面的参数。直接写入<%=select(2)%>,去查询id=2的记录就没有问题。不知道有没有好的方法让c#标签<% %>接受JavaScript的参数呢?
      

  3.   

    现在一个问题分成两个
    1、怎么弹出框,这个用ModalPopupExtender,里面嵌入一个udpatepanel
    2、怎么点击不同的链接显示不同的内容
    <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                    <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument="1" 
                            onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
                    <asp:LinkButton ID="LinkButton2" runat="server"  CommandArgument="2" 
                            onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
                    <asp:LinkButton ID="LinkButton3" runat="server"  CommandArgument="3" 
                            onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
                </ContentTemplate>
            </asp:UpdatePanel>
    后台方法里面对数据库进行查询就可以了,id就放在CommandArgument里面
      protected void LinkButton1_Click(object sender, EventArgs e)
        {
            LinkButton lb = sender as LinkButton;
            Label1.Text = lb.CommandArgument; //在这里获取id值
        } 
      

  4.   

    你是通过点击GridView中的按钮来弹出ModalPopupExtender吗
      

  5.   


     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Reject")
            {
                int rowIndex = ((GridViewRow)(((Button)(e.CommandSource)).Parent.Parent)).RowIndex;
                ModalPopupExtender2.Show();
                ModalPopupExtender1.Hide();
            }
            if (e.CommandName == "Detail")
            {
                ModalPopupExtender1.Show();
                ModalPopupExtender2.Hide();
                BindModalUp(e.CommandArgument.ToString());//自定义方法绑定数据,传参数
                
            }
        }
      

  6.   


    首先感谢你的回答
    你是说把udpatepanel放到ModalPopupExtender中?你后面那些LinkButton也是在这个ModalPopupExtender中。
    那么这样,记录的列表不就在ModalPopupExtender里面啦吗?我想要实现的是在页面的列表上点击LinkButton,然后弹出ModalPopupExtender显示该记录的详细信息。
      

  7.   

    首先在gridview中添加TemplateField,加入一个button,设置button的CommandName,然后再CommandArgument中邦定要传的参数比如输入<%#Bind(“ID”)%>,然后再gridview的RowCommand事件中弹出ModalPopupExtender,具体代码可以参见我楼上的留言。如果要弹出的是另外的一个Gridview就在弹出的同时绑定该Gridview,传的参数直接用e.CommandArgument.ToString()就可以获得。如果是一个个Textbox那么就读数据库一个一个绑定。
      

  8.   

     this.btnok.OnClientClick = "__doPostBack('" + this.btnok.UniqueID + "','')";//让btnok可以执行后台代码
    加上类此这样的话,拦截js的执行,直接执行cs代码,就可以实现你的功能
      

  9.   

    汗!!!你要用updatepanel之外的控件来触发更新
    这就可以分解成第三个问题了
    你把控件添加到updatepanel的Triggers集合里就行了
    <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="LinkButton1" EventName="Click" />
                    <asp:AsyncPostBackTrigger ControlID="LinkButton2" EventName="Click" />
                    <asp:AsyncPostBackTrigger ControlID="LinkButton3" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
            <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click" CommandArgument="1">LinkButton</asp:LinkButton>
            <asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton1_Click" CommandArgument="2">LinkButton</asp:LinkButton>
            <asp:LinkButton ID="LinkButton3" runat="server" onclick="LinkButton1_Click" CommandArgument="3">LinkButton</asp:LinkButton>
      

  10.   

    我的ModalPopupExtender弹出的层不能移动??、
    有谁知道什么原因啊???