我有一个用户控件,在其中我使用了一个用户控件两次。用户控制是与模式弹出扩展器和搜索面板与网格视图具有选择按钮。当我单击select按钮时,用户控件应该会关闭。为此,我编写了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
希望我的问题是清楚的!需要帮助!感谢advance..have为这个问题花了几天时间,但没有找到任何东西
发布于 2015-02-26 14:41:56
如果您决定通过后台代码文件隐藏JS的模态,您可以这样做:步骤1,在.aspx页面中创建JS函数,如下所示:
function HideModal()
{
$find("modalID").hide();
}
然后在你的代码中,运行你想要的任何事件的函数,如下所示:
ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:hideModal();", true);
https://stackoverflow.com/questions/28713069
复制相似问题