none
請問各位前輩,為什麼我這樣寫網頁沒辦法執行動作呢? RRS feed

  • 問題

  • <asp:DropDownList ID="DropDownList1" runat="server" OnLoad="DropDownList1_Load" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    <asp:Label ID="Label2" runat="server" Text=""></asp:Label>
    protected void DropDownList1_Load(object sender, EventArgs e)
    {
         if (!IsPostBack)
         {
                  DropDownList1.Items.Clear();
                  DropDownList1.Items.Add(new ListItem("請選擇", ""));
                  DateTime dt = DateTime.Now;
                  System.Globalization.TaiwanCalendar TC = new   System.Globalization.TaiwanCalendar();
                  int NOWyear = TC.GetYear(dt);
                  for (int i = NOWyear - 2; i < NOWyear + 3; i++)
                  {
                      DropDownList1.Items.Add(new ListItem(i.ToString(), (i + 1911).ToString() + "/01/01 上午 12:00:00"));
                  }
         }
    }
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
            Label1.Text = "起:" + DropDownList1.SelectedItem.Value.Trim().ToString();
            Label2.Text = "屹:" + (Convert.ToInt16(DropDownList1.SelectedItem.Value.Trim().ToString().Substring(0, 4)) + 1) + "/12/31" + DropDownList1.SelectedItem.Value.Trim().ToString().Substring(9);
    }

    請問 為什麼我只是單純想要選擇之後顯示我指定的值,但選擇後卻沒有任何反應@@"

    請各位前輩幫個小忙,感謝各位前輩的幫忙,感謝!

    • 已移動 Bill ChungMVP 2014年8月13日 上午 01:54 ASP.NET 開發
    2014年8月12日 下午 07:00

解答

    1. 這應該要po在 ASP.NET 版
    2. 你dropdownlist1 的autopostback要設定成true

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年8月13日 上午 01:03

所有回覆

    1. 這應該要po在 ASP.NET 版
    2. 你dropdownlist1 的autopostback要設定成true

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年8月13日 上午 01:03
  • 題外話,提醒幾件事:

    1. 如果你要用西元年,就不需要還特地用TaiwanCalendar,取year再加1911。原本的Date就是西元年了。
    2. Datetime的ToString()方法有支援format,如果需要將Datetime以特定格式呈現,可以參考:自訂日期和時間格式字串
    3. 已經是string的型態了,就不需要再一直ToString(),例如你的DropDownList1.SelectedItem.Value.Trim().ToString()跟DropDownList1.SelectedItem.Value.Trim().ToString().Substring(0, 4)

    如果是日期,就讓程式碼都用日期來處理,只有在最後要轉成特定format呈現時,再用字串去呈現。才不會把Datetime轉成一堆奇怪的string後,用substring再轉來轉去int/string跟一堆加減乘除,再轉成字串組起來。 這樣維護的人會想死...


    授人以魚,三餐之需;授人以漁,終生之用。
    希望各位發問的朋友,得到的是如何釣魚的知識。之後也可以分享給別人,釣魚的知識。而不是肚子餓了,就上來討魚吃。

    若您的程式碼有SQL injection的問題,在修改完畢之前,我不願意給您任何解答。因為解決了您的程式問題,造成更大的系統漏洞問題,還不如讓程式壞掉。

    請參考:SQL injection簡介與解決方式

    常用資源參考:


    小弟的blog: In 91,wiki: my wiki

    2014年8月13日 上午 09:16
    版主
  • 感謝 91大 的提醒與建議!

    小弟謹記在心

    感謝前輩的指教 : )

    2014年8月13日 下午 12:23