2

マスター ページと Default.aspx ページがあります。私のドロップダウン<select>はマスターページにあります。

マスター ページのドロップダウンから月を選択し、それを別のクラスの変数に割り当てたいと考えています。次に、default.aspx ページでその変数を使用して、変数に割り当てた日付と同じ日付のデータをデータベースから選択する必要があります。

マスターページで選択する理由は、セレクターがサイト全体のすべてのページにある必要があるためです。

私にとってこの問題を引き起こしている主な原因は、マスターページの Page_Load のPage_Load eventに起動する defauls.aspx ページにあります。

試してみるPage_Initと動作しますが、セレクターコードは値として 0 を返し続けます。私も a を使用してみましたがHiddenField、これも失敗しました。これについて何か助けていただければ幸いです!


Site1.Master:

               <select id="SelectMonth" runat="server" onchange="CmbChange();">
                    <option id="Select" value="0">[Select Month]</option>
                    <option id="January" value="1">January</option>
                    <option id="February" value="2">February</option>
                    <option id="March" value="3">March</option>
                    <option id="April" value="4">April</option>
                    <option id="May" value="5">May</option>
                    <option id="June" value="6">June</option>
                    <option id="July" value="7">July</option>
                    <option id="August" value="8">August</option>
                    <option id="September" value="9">September</option>
                    <option id="October" value="10">October</option>
                    <option id="November" value="11">November</option>
                    <option id="December" value="12">December</option>
                </select>

                <script type="text/javascript">
                    function CmbChange(obj) {
                        var cmbValue = document.getElementById("SelectMonth").value;
                        __doPostBack('SelectMonth', cmbValue);
                    }
                </script>

Site1.Master.cs:

    protected void Page_Load(object sender, EventArgs e)
    {
        int month = Convert.ToInt32(SelectMonth.Value);

        if (month > 0)
        {
            Date.Month = month;
        }
        else
        {
            Date.Month = DateTime.Now.Month;
        } 
    }

デフォルト.aspx:

    protected void Page_Load(object sender, EventArgs e)
    {
        // Example
        var sql = "SELECT * FROM Data WHERE Month = " + Date.Month;
    }

日付.cs:

public static class Date
{
    public static int Month { get; set; }
}

ありがとう!

4

2 に答える 2