问题描述
我在gridview里点击“选择”按钮,希望弹出窗口,在弹出窗口操作完毕后关闭,返回值给父窗口,并对父窗口的数据源重新绑定以刷新gridview。我这么做是不能刷新gridview的,请指教。前端asp.net代码:<asp:GridViewID="GridView1"runat="server"Width="860px"AllowPaging="True"AutoGenerateColumns="False"BackColor="White"OnSelectedIndexChanged="GridView1_SelectedIndexChanged"><Columns><asp:BoundFieldDataField="yhjg"HeaderText="用户机构"/><asp:BoundFieldDataField="yhbh"HeaderText="用户编号"/><asp:BoundFieldDataField="yhmc"HeaderText="用户姓名"/><asp:CommandFieldShowSelectButton="True"ButtonType="Button"HeaderText="选择"><HeaderStyleBackColor="DodgerBlue"/><ItemStyleWrap="False"/></asp:CommandField></Columns><HeaderStyleBackColor="DodgerBlue"ForeColor="White"Font-Size="12px"/><AlternatingRowStyleBackColor="White"/></asp:GridView>前端C#代码:publicvoidbind(){stringsql_select="";sql_select="select*fromcs_yh";SqlServerDataBaseobj=newSqlServerDataBase();SqlConnectionconn=obj.DBconn();SqlDataAdaptermy_data=newSqlDataAdapter(sql_select,conn);DataSetmy_data_source=newDataSet();conn.Open();my_data.Fill(my_data_source,"cs_yh");GridView1.DataSource=my_data_source;GridView1.DataKeyNames=newstring[]{"yhbh"};//主键GridView1.DataBind();conn.Close();}protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse){}protectedvoidGridView1_RowDataBound(objectsender,GridViewCommandEventArgse){}protectedvoidGridView1_SelectedIndexChanged(objectsender,EventArgse){userKey=GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString().Trim();Session["key"]=userKey;stringstr_url="form_cs_yh_edit.aspx";Response.Write("<script>varreturn_value=window.showModelessDialog('"+str_url+"','window','dialogWidth=400px;dialogHeight=500px');alert(return_value);</script>");在这个位置时,下面的bind()就没有执行了,所以gridview不能被刷新,请问如何解决。bind();}
解决方案
解决方案二:
请问有人帮忙么?
解决方案三:
设置断点看看不执行是什么意思呢?好像哪里有个属性,要设置为true,然后在弹出窗口后父页面还继续执行
解决方案四:
没找到这样的属性啊。另外断点如何设置?
解决方案五:
紧急等待中……
解决方案六:
咋就没人回答呢?是不是太难了啊?
解决方案七:
那个绑定可以执行啊!如果你的初始化页面的数据跟选择后的数据是不同的,就还要写方法!改一改sql语句就行了!
解决方案八:
思路错误啊,绑定执行了,而且在你的ModelDialog之前执行的学Asp.net,还是先搞清楚,asp.net的基本原理……
解决方案九:
这样是不行的,建议不要用showModelessDialog,在本页面做一个层来处理对话框
解决方案十:
你的意思就是弹出一个新窗体然后让新窗体上面的按钮或者别的控件(或者关闭新窗体)来控制父窗体并且刷新父窗体是不??你可以用window.close();window.opener.location.reload();如果出现重试那你就把<formid="form1"method="get"runat="server">把提交方式改成get就ok了
解决方案十一:
在html中刷新当前页就可以了window.location.href=
解决方案十二:
当你点就那个按钮的时候你掉这个方法。。。。<scriptlanguage="javascript"type="text/javascript">functionfun(){window.close();window.opener.location.reload();}</script>
解决方案十三:
返回的时候不要直接history.go()要刷新一下页面
解决方案十四:
我没有使用模态窗口了,A页面用windw.open(),B页面用window.opener.location.href='A.aspx'
解决方案十五:
楼主可用一用AJAX中的ModalPopupExtender控件,是真对楼主所提的问题的,应用AJAX并不困难,很容易上手!!
解决方案:
当然不执行了,那是已经跳转了,怎么绑定啊!要先绑定再跳转所以bind()要放在Response.write("")上面
解决方案:
你用的这方法太复杂了~~~
解决方案:
你可以把DataGrid设为公有然后在返回页面时绑定这方法好像可行