[英]Trigger jQuery function / event from c# code-behind
我希望我能夠清楚地解釋我的問題。
場景:
帶有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>
我正在使用同一頁面在此處加載數據以執行記錄更新。 數據加載的代碼段:
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?
拜托,請幫幫我。 我在這里發布的片段只是我迫切需要解決的許多jQuery驗證之一。 提前致謝。
現在感覺非常愚蠢。 弄清楚睡覺后如何解決它。 :P
我剛剛將默認的jQuery代碼更改為:
var isReceiptRequired = $('input[id$=_chkReceiptRequired]').is(':checked');
$('input[id$=_txtIDNumber]').prop('disabled', !isReceiptRequired);
ValidatorEnable($("[id$='rfvIDNumber']")[0], isReceiptRequired);
我只記得頁面循環中的最后一件事是在頁面上渲染它,因此jQuery可以通過代碼隱藏控件中設置的值進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.