Проблема с передачей значения из флажка asp.net или текстового поля на сервер из окна simplemodal - PullRequest
0 голосов
/ 17 февраля 2012

Привет всем, у меня есть особая проблема.В тесте aspx (webform) я создал следующее.два флажка и несколько jQuery, чтобы скрыть или показать второй, если щелкнул основной.Затем я добавил кнопку, которая позволяла мне отображать на странице значения каждого флажка, чтобы они были нулевыми.Aspx

<head runat="server">
    <script type="text/javascript" src="js/jquery-1.7.js"></script>
    <script type="text/javascript">
        $(function () {
            $('#cb2').hide();

            $('#cb1').click(function () {

                if ($('#cb1').is(":checked")) {
                    $('#cb2').show('fast');
                }
                else {
                    $('#cb2').hide();
                    $('#cb2').removeAttr('checked');
                }
            });
    });
</script>

<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManger1" runat="server"></asp:ScriptManager>
<div id="cbHolder">
<asp:CheckBox Text="checkbox 1" ID="cb1" runat="server" />
<asp:CheckBox Text="checkbox 2" ID="cb2" runat="server" />
<asp:Button ID="checkBtn" runat="server" Text="get value" OnClick="checkBtn_Click" />
<br />
<asp:Label ID="lbl_Values" runat="server" />
</div>
</form>

CodeBehind aspx.cs

protected void checkBtn_Click(object sender, EventArgs e)
        {
            lbl_Values.Text = cb1.Checked.ToString() + cb2.Checked.ToString();
        }

Все это прекрасно работает

Тем не менее, я сейчас добавил это же содержаниев моем проекте, и вместо того, чтобы быть в форме, содержимое теперь находится в окне SimpleModal.

aspx

 <div id="save-modal-content">
                <asp:Label ID="ssHeader" runat="server" Text="<%$ Resources:InformResources, SaveSearch_lbl %>" />
                <br />
                <div class="ssContainer">
                    <div class="ssLabel">
                        <asp:Label Text="<%$ Resources:InformResources, Name_lbl %>" runat="server" /></div>
                    <div>
                        <asp:TextBox CssClass="ssTextBox" ID="txt_ssname" runat="server" /></div>
                </div>
                <br />
                <div class="ssContainer">
                    <div class="ssLabel">
                        <asp:Label Text="<%$ Resources:InformResources, DescFull_lbl %>" runat="server" /></div>
                    <div>
                        <asp:TextBox CssClass="ssTextBox" ID="txt_ssDescription" runat="server" /></div>
                </div>
                <br />
                <div class="ssContainer">
                    <div class="ssLabel">
                        <asp:Label Text="<%$ Resources:InformResources, Query_lbl %>" runat="server" /></div>
                    <div>
                        <asp:TextBox CssClass="ssQueryBox" ID="txt_ssQueryText" runat="server" Rows="6" TextMode="MultiLine" /></div>
                </div>
                <hr class="invisiblehr" />
                <div id="cb1" class="cbHolder">
                    <asp:CheckBox ID="cb_Notifiy" OnCheckedChanged="cb_click" runat="server" Text="I wish to receive notificaions on this search" />
                </div>
                <br />
                <div id="cb2" class="cbHolder">
                    <asp:CheckBox ID="cb_Email" runat="server" Text="I wish to receive notifications via email" />
                </div>
                <hr class="invisiblehr" />
                <div class="saveButtonContainer">
                    <asp:LinkButton ID="ssSaveButton" CssClass="advButtons" Text="Save" OnClick="ssSaveButton_Click"
                        runat="server" />
                    <a href="#" id="ssCancelButton" class="advButtons">Cancel</a>
                </div>
            </div>

js file

$(function () {

        $('#cb_Notifiy').click(function () {

            if ($('#cb_Notifiy').is(":checked")) {
                $('#cb2').show('fast');
            }
            else {
                $('#cb2').hide();
                $('#cb_Email').removeAttr('checked');
            }
        });

И код позади

public void ssSaveButton_Click(object sender, EventArgs e)
        {

           txt_ssname.Text = cb_Notifiy.Checked.ToString() + cb_Email.Checked.ToString();
           string foo = txt_ssname.Text.ToString();
        }

код для вызова Простое модальное окно

// SimpleModal Save Dialog $ (function () {$ ('# btnSave'). Click (function (e) {

    var searchtrm = $('#tbsearchterm').val();
    if (searchtrm == "Enter Search Term" || $.trim(searchtrm) === "") {

        $('#alert-modal-content').modal({ overlayClose: false, close: false, containerId: 'alert-container' });
        $('<b>Whoops!</b><br/><br/><span>Before you can save your search you need to enter a search term or query.</span>').appendTo('#alertTerm');

    }
    else {
        $('#txt_ssQueryText').val(searchtrm);
        $('#save-modal-content').modal({ overlayClose: false, close: false, containerId: 'saveSearch-container' });
    }
});

});

Помимо нескольких тегов, изменение кода относительно одинаково. Однако в рамках проекта при каждом нажатии кнопки сохранения вызывается метод, но все значения (флажки, текстовые поля)* null.

Может кто-нибудь помочь мне выяснить, почему он работает в одном проекте, но не в другом.

Заранее спасибо

1 Ответ

0 голосов
/ 17 февраля 2012

Обнаружил ответ на мой вопрос здесь из предыдущего поста SO

Короче говоря, простой модальный из коробки добавляет содержимое к основному документу.Это за пределами тега формы, поэтому элементы не могут быть найдены.Простой модал предлагает вызов свойства appendTo, который для asp.net использует appendTo: 'form'.Добавление этого тега позволит выполнять как свойства, так и вызовы кода.

Спасибо

...