2

ポストバック後にボタンをクリックするのに問題があります。ボタンをクリックした後にのみ表示されるWebページのモーダルウィンドウ内のいくつかのテキストボックスを検証しています。現在、ポストバック後、Webページが再び開き、モーダルウィンドウが閉じられます。これは、開いている必要があります。私のコードにはハンドラーがありません。ボタンをクリックしてhtmlコードを実行し、モーダルウィンドウを表示します。検証が開始されるように投稿した後、クリックを実行するには、このボタンが必要です。btnSickness.Click()を使用してみましたが、これが気に入らないようで、どこにも何も見つからないようです。コード:

public partial class _Default : System.Web.UI.Page
{

    int i = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (i > 0)
           {
           }      

    }

    protected void chkDoctor_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (drpDoctor.SelectedValue == "Yes")
        {
            txtIfNoWhy.ReadOnly = true;
            txtIfNoWhy.BackColor = Color.LightGray;
            i++;
        }
        else if (drpDoctor.SelectedValue == "No")
        {
            txtDocName.ReadOnly = true;
            txtHouseName.ReadOnly = true;
            txtStreet.ReadOnly = true;
            txtTownCity.ReadOnly = true;
            txtCounty.ReadOnly = true;
            txtPostalcode.ReadOnly = true;
            txtInitialDate.ReadOnly = true;
            txtTreatmentRecieved.ReadOnly = true;
            txtCurrentTreatment.ReadOnly = true;

            txtDocName.BackColor = Color.LightGray;
            txtHouseName.BackColor = Color.LightGray;
            txtStreet.BackColor = Color.LightGray;
            txtTownCity.BackColor = Color.LightGray;
            txtCounty.BackColor = Color.LightGray;
            txtPostalcode.BackColor = Color.LightGray;
            txtInitialDate.BackColor = Color.LightGray;
            txtTreatmentRecieved.BackColor = Color.LightGray;
            txtCurrentTreatment.BackColor = Color.LightGray;
            i++;
        }
    }
}

モーダルウィンドウコード:

<div class"modal" id="myModal"></div> 
    <div class="row-fluid">
        <div class="span2">
                <asp:Button runat="server" class="btn" data-toggle="modal" href="#Div1" ID="btnSickness" Text="Submit a Sickness Form" />
                       <div class="modal hide" id="Div1">
<div class="modal-header">
<button class="close" data-dismiss="modal">×</button>
<h3>Sickness Form</h3>
</div>
<div class="modal-body">
<p>Please fill in the following information regarding your sickness</p>
<br />
<p>Sickness Date From:</p>
<asp:TextBox runat="server" ID="txtSicknessFrom"></asp:TextBox>
<br />
<p>Sickness Date To:</p>
<asp:TextBox runat="server" ID="txtSicknessTo"></asp:TextBox>
    <br />
<p>Absence Date To:</p>
<asp:TextBox runat="server" ID="txtAbsenceFrom"></asp:TextBox>
4

1 に答える 1

4

サーバーから戻ったときに表示するようにモーダルに指示する非表示フィールドを設定できます。次に、pageLoadsのたびに実行されるpageLoad javascript関数を追加して、モーダルを表示する必要があるかどうかを確認できます。

サーバーサイド

hdf_ShowModal.Value = "true";

HTML

<asp:HiddenField runat="server" ID="hdf_ShowModal" />

Javascript

function pageLoad(sender, args)
{
    if(document.getElementById('<%= hdf_ShowModal.ClientID %>').value == "true")
    {
        // perform code to show modal
    }
}

編集

jqueryも使用しているので、次のことを試してモーダルを表示できます。

function pageLoad(sender, args)
{
    if($('[id$=hdf_ShowModal]').val() == "true")
        $('#myModal').modal({ show: true });
}
于 2012-05-16T14:02:17.337 に答える