当 Rad 组合框显示空消息字符串时,将文本框的可见性设置为 false
本文关键字:文本 可见性 设置 false 组合 Rad 显示 字符串 消息 | 更新日期: 2023-09-27 18:32:41
我有一个用户控件,其中使用一个可编辑的 rad 组合和一个 rad 文本框。 取决于组合的值 我需要设置文本框的可见性。 它的工作。 代码如下。
1. 用户控制
<asp:Panel ID="pnl44" runat="server" Visible="false">
<table width="100%">
<tr>
<td style="width: 20%;">
Quantity<span style='color: red'>* </span>
</td>
<td align="left" style="vertical-align: top; width: 80%;">
<table width="100%">
<tr>
<td align="left" style="vertical-align: top; width: 63%;">
<telerik:RadComboBox ID="pnl44_ddlUnit" runat="server" DropDownAutoWidth="Enabled"
Width="150px" AutoPostBack="true" OnSelectedIndexChanged="ddlUnit_SelectedIndexChanged"
EmptyMessage="---Select---" markfirstmatch="True" allowcustomtext="false" onclientblur="OnClientBlurHandler"></telerik:RadComboBox>
</td>
<td>
<asp:TextBox ID="pnl44_txtQuantity" MaxLength="10" runat="server" CssClass="textfield"
Width="145px" />
<ajaxtoolkit:FilteredTextBoxExtender ID="ftetxtQuantity" FilterType="Numbers" runat="server"
TargetControlID="pnl44_txtQuantity" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</asp:Panel>
在 Am 处理所选更改事件以设置可见性的代码中,其工作正常。 On Blur 的 JavaScript 如下所示(它在 ASPX 页面中)。
<script type="text/javascript" language="javascript">
function OnClientBlurHandler(sender) {
var item = sender.findItemByText(sender.get_text());
if (!item) {
sender.clearSelection();
}
}
</script>
这样,只要组合值为 null,它就会显示空消息。
场景是这样的
默认情况下,txtQuantity 的可见性为 false。当用户从组合中选择"value1"时,txt数量可见性为真;然后用户使用删除/退格删除 value1,组合框将显示空消息字符串,但此时 txtQuantity 可见性为 true,而不是 false。
请帮我解决问题...
您似乎更改了服务器上的文本框可见性,因此您需要发起一个请求,该请求将在您清除组合选择时为您执行此操作。基本:
function OnClientBlurHandler(sender) {
var item = sender.findItemByText(sender.get_text());
if (!item) {
sender.clearSelection();
__doPostBack("", "");
}
}
这将生成一个通用回发。可以使用隐藏按钮、隐藏字段或其他参数来了解此回发的来源。
选项 2:使用 JavaScript 隐藏文本框,例如:
function OnClientBlurHandler(sender) {
var item = sender.findItemByText(sender.get_text());
if (!item) {
sender.clearSelection();
document.getElementById("<%=pnl44_txtQuantity.ClientID%>").style.display="none";
}
}
或类似内容,具体取决于 ACT 控件对文本框执行的操作。