none
TreeView的選擇值 RRS feed

  • 一般討論

  • 我畫面有個TreeView 和 FormView,主要是針對TreeView做詳細資料的顯示、新增、刪除、修改。

    以下為我load的程式碼:

    If IsPostBack Then Me.Num = Me.TreeView1.SelectedValue

    TA.Fill(dt)
    RtNode = New TreeNode("WF930-0808-P00-A00", 1)
    CmbNode(RtNode , 0) '組合樹狀函式
    Me.TreeView1.Nodes.Clear()
    Me.TreeView1.Nodes.Add(Rtnode)
    Me.TreeView1.DataBind()

    我在點選node或切換到FormViewMode.Insert時,Me.Num = Me.TreeView1.SelectedValue都還是正確的。

    不過,當我輸入要新增的資料後,按下commandName="Insert"的按鈕後,Me.TreeView1.SelectedValue為"",

    而我在FormView1.ItemInserting事件裡,取不到Num正確點選的值,是否觀念錯誤,煩請指教

    • 已變更類型 91MVP, Moderator 2011年8月1日 下午 01:38 發問人自行解決
    2011年7月28日 上午 04:40

所有回覆

  • 我覺得是順序的關係,你想辦法把TreeView.DataBind用if not IsPostBack then 包起來試試看

    2011年7月28日 上午 04:56
    版主

  • Hi:

    個人是認為當您點選node或切換FormView新增模式還有按下新增按鈕時

    都會再執行一遍以下的程式碼(清空TreeView1.Nodes動作)

    TA.Fill(dt)
    RtNode = New TreeNode("WF930-0808-P00-A00", 1)
    CmbNode(RtNode , 0) '組合樹狀函式
    Me.TreeView1.Nodes.Clear()
    Me.TreeView1.Nodes.Add(Rtnode)
    Me.TreeView1.DataBind()

     

    從您提供的資訊,能夠幫您重構的程式碼大概只能這樣:

     Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then '畫面預設該做的事
          TA.Fill(dt)
          RtNode = New TreeNode("WF930-0808-P00-A00", 1)
          CmbNode(RtNode, 0) '組合樹狀函式
          Me.TreeView1.Nodes.Clear()
          Me.TreeView1.Nodes.Add(Rtnode)
          Me.TreeView1.DataBind()
        End If
    
        
    
    
      End Sub
    

    然後在 點選node或切換FormView新增模式還有按下新增按鈕(Postback)時的事件才去

     Me.Num = Me.TreeView1.SelectedValue
    
    
    

     


    Shadowと愉快なコード達
    Please correct me if my concept is wrong
    2011年7月28日 上午 05:17
  • 謝謝大大們的回答,兩個方法我都測試過了,值還是會變成""。最後我採用viewstate將編號存起來使用。
    2011年7月29日 上午 02:28