none
gridview裡面放置user control控制項 RRS feed

  • 問題

  • 請問一下, 假設我的gridview裡面放了一個自己做的月曆控制項

    我要bind資料時該怎麻做呢

     

    我有看到人有寫法是類似下面這樣

     

    可是那是帶死的資料.....

    如果我想讀到資料庫的資料~~不知道可以如何做??

     

    謝謝

     

    Protected Sub gvMain_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles Gridview1.DataBound
            For index As Integer = 0 To Me.Gridview1.Rows.Count - 1
               CType(Gridview1.Rows(index).Cells(1).FindControl("calendar"), TextBox).Text = "2007/1/1"

          Next
      End Sub

     

     

    2007年4月27日 上午 02:43

解答

  • 謝謝~~我已解決了~~

    類似以下解法

     

    drDetail = DetailDS.Tables(DetailTable).Rows(e.NewEditIndex)

     

    If Not drDetail.IsNull("calendar") Then
     CType(DetailDBG.Rows(index).Cells(1).FindControl("calendar"), TextBox).Text = drDetail("calendar")
     Else
     CType(DetailDBG.Rows(index).Cells(1).FindControl("calendar"), TextBox).Text = ""
     End If

    2007年5月1日 上午 05:25

所有回覆

  • 以下是我想到的Logic :

     

    比如我的User Control  的 Class 名稱為:UserControl1

    那我在GridView 捉到這Control時,就指定它得型態是(UserControl1);(這和轉型為TextBox意思一樣)

    然後,就可以像一般一樣使用UserControl內的Property了

     

    另外,利用GridView_RowDataBound()這事件做,它是一個Row 一個Row處理;不像DataBound()一次就處理全部

    1.GridView 放control 用TemplateField來做

    2.在RowDataBound()找到這一個Control 再設定它的Property

     

    2007年4月27日 上午 05:49
  • 謝謝~~我已解決了~~

    類似以下解法

     

    drDetail = DetailDS.Tables(DetailTable).Rows(e.NewEditIndex)

     

    If Not drDetail.IsNull("calendar") Then
     CType(DetailDBG.Rows(index).Cells(1).FindControl("calendar"), TextBox).Text = drDetail("calendar")
     Else
     CType(DetailDBG.Rows(index).Cells(1).FindControl("calendar"), TextBox).Text = ""
     End If

    2007年5月1日 上午 05:25