我在验证项目中的弹出屏幕时遇到问题。我正在使用验证组来验证弹出窗口中的控件。我们的项目标准显示Red Foreground用于未填充的控件。它在普通屏幕中工作但它是不工作弹出窗口(ForeColor颜色红色)? 有什么办法可以解决这个问题? 单击弹出div将显示的同一窗口中的'btnExportLE'按钮。
<asp:Button ID="btnExportLE" runat="server" class="btnNew" Text="Export LE" OnClientClick="returnShowExpPopup();" />
CSS
.popups
{
position: absolute;width: 550px; height: 430px;border-width: 0px;top: 240px;margin-left: 273px;
background: #FFF;border-radius: 5px;box-shadow: 6px 6px 7px #4d4d4d;z-index: 10000100; border: 1px solid #CCCCCC;
}
function ShowExpPopup()
{
document.getElementById('<%= dvExpPopUp.ClientID %>').style.display = "block";
document.getElementById("divBG").style.display = "block";
return false;
}
<div id="dvExpPopUp" runat="server" class="popups" style="display: none">
<div class="popupTop">
<table width="550px" style="height: 100%">
<tr style="height: 10px;">
<td style="text-align: center; width: 510px;">
<asp:Label ID="Label1" runat="server" Text="Export LE" Font-Bold="true"></asp:Label>
</td>
<td style="text-align: right; width: 30px;">
<asp:LinkButton ID="lnkClose1" CssClass="lnkcancel" runat="server" ForeColor="Red"
OnClientClick="Clear();closeInfo();" Text=" X "></asp:LinkButton>
</td>
</tr>
</table>
</div>
<table width="550px" style="font: Arial; font-size: small;">
<tr>
<td width="10%">
</td>
<td width="25%">
<asp:Label ID="lblMandantCode" runat="server" Text="Mandant Code"></asp:Label>
</td>
<td colspan="3">
<asp:TextBox ID="txtMandantCode" runat="server" class="txtBox" Width="200px" TextMode="SingleLine"
MaxLength="3"></asp:TextBox>
<asp:RequiredFieldValidator ID="RVMandantCode" runat="server" ErrorMessage="*" ControlToValidate="txtMandantCode"
ForeColor="Red" ValidationGroup="V2"></asp:RequiredFieldValidator>
</td>
<td>
</td>
</tr>
<tr>
<td width="10%">
</td>
<td width="25%">
</td>
<td colspan="3">
<asp:ToolkitScriptManager ID="ToolkitScriptManager2" runat="server">
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btnExport" runat="server" ValidationGroup="V2" Style="margin-bottom: 0px"
Text="Export" class="btnNew" OnClick="btnExport_Click" />
<asp:Button ID="btnExpClose" runat="server" Text="Close" class="btnNew" OnClientClick="Clear();closeInfo();"
OnClick="btnExpClose_Click" />
<br />
<asp:Label ID="lblResult" runat="server" Text="" class="errMsg"></asp:Label>
<asp:UpdateProgress ID="UpdWaitImage" runat="server" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
<asp:Image ID="imgProgress" ImageUrl="Images/loader.gif" runat="server" />
<asp:Label ID="lblWait" runat="server" Text="Please Wait..." Font-Bold="true" ForeColor="#FE2E2E"></asp:Label>
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</div>
答案 0 :(得分:1)
你需要使用如下
OnClientClick="return ShowExpPopup();"
在这里更改控件的前色是SO的类似问题 Change Text Box Color using Required Field Validator. No Extender Controls Please
答案 1 :(得分:1)
感谢Shekhar的链接。它正在推特......
function fnOnUpdateValidators()
{
for (var i = 0; i < Page_Validators.length; i++)
{
var val = Page_Validators[i];
var ctrl = document.getElementById(val.controltovalidate);
if (ctrl != null && ctrl.style != null)
{
if (!val.isvalid)
ctrl.style.background = '#FFAAAA';
else
ctrl.style.backgroundColor = '';
}
}
}
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "val", "fnOnUpdateValidators();");
答案 2 :(得分:0)
请尝试显示弹出窗口弹出的验证消息。 并为主页面使用单独的验证组并弹出。 假设您使用validationgrp1作为主页面,然后使用validationgrp2弹出窗口。 它认为它会成功。 谢谢&amp;问候, Aloy