我有一个用户控件,我在其中使用一个用户控件两次。用户控件是模态弹出扩展器和带有gridview的搜索面板,具有选择按钮。当我单击选择按钮时,应该关闭用户控件。为此,我正在编写foll代码
protected void gvSearchResults_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
User usr = e.Row.DataItem as User;
if (usr != null)
{
StringBuilder sb = new StringBuilder();
sb.Append("document.getElementById('" + txtEmpId.ClientID + "').value = '" + usr.EmployeeId + "';");
sb.Append("document.getElementById('" + txtEmpName.ClientID + "').value = '" + usr.FirstName + " " + usr.LastName + "';");
sb.Append("$find('"+ ModalPopupExtender1.BehaviorID+"').hide();document.getElementById('" + txtEmployeeID.ClientID + "').value = '';document.getElementById('" + txtUserName.ClientID + "').value='';");
LinkButton lnkSelect = e.Row.Cells[0].Controls[0] as LinkButton;
lnkSelect.OnClientClick = sb.ToString();
lnkSelect.Text = SelectString;
e.Row.DataBind();
}
}
}
在父页面中,我正在调用这样的用户控件
<asp:TableCell>
<asp:Label CssClass="editorLabel" ID="lblInstalledBy" runat="server" Text="Installed By:"></asp:Label>
</asp:TableCell>
<asp:TableCell>
<CustomCTRL:CTRLSelectUser Width="155" ID="SelectUserInstBy" runat="server">
</CustomCTRL:CTRLSelectUser>
</asp:TableCell>
<asp:TableCell />
<asp:TableCell>
<asp:Label CssClass="editorLabel" ID="lblOwner" runat="server" Text="Owner:"></asp:Label>
</asp:TableCell>
<asp:TableCell>
<CustomCTRL:CTRLSelectUser Width="155" ID="CTRLSelectUserOwner" runat="server">
</CustomCTRL:CTRLSelectUser>
</asp:TableCell>
现在的问题是,这个功能正常,第二次使用,在父页面中第一次使用时,用户控件不会隐藏。
更多信息:父控件位于更新面板中,子控件也位于更新面板中,两者都具有UpdateMode = conditional
希望我的问题很明确!需要帮忙!在此先感谢..已经花了几天时间来解决这个问题,但没有找到任何东西
答案 0 :(得分:0)
如果你决定通过代码隐藏文件用JS隐藏模态,你可以这样做: 第1步,在.aspx页面中创建一个JS函数,如下所示:
function HideModal()
{
$find("modalID").hide();
}
然后在你的代码中,运行你想要的事件的函数:
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:hideModal();", true);