您可以通过附加使用JavaScript强制寄回 __doPostBack
参加活动。
function doClick(sender, e) {
__doPostBack(sender,e);
}
题
我有一个按钮,可导致创建弹出窗口:
<ItemTemplate>
<asp:Button ID="viewHoursButton" runat="server" Text="View Hours" OnClick="viewHoursButton_OnClick" />
<ajaxToolkit:ModalPopupExtender ID="viewHoursPopup" runat="server"
TargetControlID="viewHoursButton"
PopupControlID="viewHoursPanel"
CancelControlID="closeInfoPanelButton2"
DropShadow="true">
</ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="viewHoursPanel" runat="server" CssClass="infoPanel">
//content of panel including gridview
</asp:Panel>
</ItemTemplate>
弹出的面板带有一个GridView,当按下按钮时,SQL参数将传递。 :
protected void viewHoursButton_OnClick(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow row = btn.NamingContainer as GridViewRow;
SqlDataSource6.SelectParameters["nonScrumStoryId"].DefaultValue = storyGridView.DataKeys[row.RowIndex].Values[0].ToString();
var viewHoursGridView = storyGridView.FindControl("viewHoursGridView") as GridView;
if (viewHoursGridView != null)
{
viewHoursGridView.DataBind();
}
}
问题在于,GridView没有显示,因为服务器没有寄回。当您将按钮添加到ajaxtoolkit:modalPopupExtender时,寄回将被淘汰。我该如何找回它?
解决方案
您可以通过附加使用JavaScript强制寄回 __doPostBack
参加活动。
function doClick(sender, e) {
__doPostBack(sender,e);
}
其他提示
嗨,我使用此代码JavaScript关闭弹出窗口和刷新父母webform
Dim str_java As String = "<script language='javascript'>"
str_java += (" window.onunload = refreshParent; ")
str_java += (" function refreshParent() { ")
str_java += (" window.self.location.reload(true); } ")
str_java += (" window.close(); ")
str_java += ("</script>")
ScriptManager.RegisterStartupScript(Me, GetType(Page), "cerrarpagina", str_java, False)
这可以帮助您