【发布时间】:2015-02-21 16:20:25
【问题描述】:
我希望我能清楚地解释我的问题。
场景:
带有 UpdatePanel 的 Asp.net 网页。控件的某些属性可以通过 UI 触发器更改并在 jQuery 中设置(为了更快的响应,因为该页面预计每天接受至少 500 条记录的输入数据)。
下面的例子,(如果用c#代码写,逻辑是这样的:txtIDNumber.Enabled = chkIsReceiptRequired.Checked; rfvIDNumber.Enabled = chkIsReceiptRequired.Checked;):
标记:
<asp:CheckBox ID="chkReceiptRequired" runat="server" Text="Receipt required" />
<asp:TextBox runat="server" ID="txtIDNumber" Width="150px" style="float: left;" />
<asp:RequiredFieldValidator ID="rfvIDNumber" runat="server" ForeColor="Red"
ErrorMessage="Enter ID No." ControlToValidate="txtIDNumber" ValidationGroup="save" />
默认 jQuery 代码片段(页面加载时,chkReceiptRequired 未选中,验证器和文本框将仅在勾选 chkReceiptRequired 时启用):
<script type="text/javascript">
function pageLoad(){
$('input[id$=_txtIDNumber]').prop('disabled', true);
ValidatorEnable($("[id$='rfvIDNumber']")[0], false);
$('input[id$=_chkReceiptRequired]').change(function () {
$('input[id$=_txtIDNumber]').prop('disabled', !$(this).is(':checked'));
$('input[id$=_txtIDNumber]').val(!$(this).is(':checked') ? '' : $('input[id$=_txtIDNumber]').val());
ValidatorEnable($("[id$='rfvIDNumber']")[0], $(this).is(':checked'));
});
}
</script>
我正在使用同一页面在此处加载数据以执行记录更新。数据加载代码sn-p:
var maintableComponent = new MainTableComponent();
var maintableData = maintableComponent.GetMainTableDataById(rowId);
chkReceiptRequired.Checked = maintableData.IsReceiptRequired.Value;
txtIDNumber.Text = maintableData.IDNumber;
//todo: enable txtIDNumber and rfvIDNumber from here
问题:正确的,在页面渲染更新时,因为检查了 chkReceiptRequired,所以应该启用 txtIDNumber。但我的问题是,事实并非如此。从代码隐藏加载数据时,如何启用 txtIDNumber 和 rfvIDNumber?
请,请帮助我。我在这里发布的 sn-ps 只是我迫切需要解决的许多 jQuery 验证之一。提前致谢。
【问题讨论】:
-
您能否截取您网站中应该检查的内容?它可能有助于我们更好地了解您的问题(:
-
另一个问题:你试过简单吗 txtIDNumber.Checked=true;在代码隐藏中?
-
是的。我包含了上面的代码。谢谢,我设法弄清楚了。 :)
标签: javascript c# jquery asp.net