none
如何利用迴圈填入多個textbox內容 RRS feed

  • 問題

  • 各位先進大家好;

         我有一個表單不是用drigview或formview,而是用table作成,其中裡面有32個textbox,我想從dataset將資料用迴圈填入textbox,但是卻出現"system.nullreferenceexecption 未將物件參考設定為物件執行個體"的錯誤,程式碼如下;

    for i as integer

    for lm as textbox

    for i = 0 to ds.tables(0).rows.count - 1

      lm =ctype(findcontrol("lm"&i.tostring),textbox)

      lm.text = ds.tables(0).rows(i)(0)

     

    next

     

    謝謝1

    2007年8月17日 上午 07:51

解答

  • HI,

     

    ASP.NET 2.0提供的GridView控制項和DetailsView控制項都內建編輯/刪除, 甚至是新增記錄的功能, 使用起來很方便, 如果要用Repeater, 須費一點手腳, 才能做出編輯功能.

     

    tihs

     

    2007年8月21日 上午 01:36

所有回覆

  • 整支Code貼上來,不同的地方寫這些Code有不同的結果,當然你要知道整支表單的生命周期才有辦法寫出正確的結果

     

    2007年8月17日 上午 08:39
  •  

    很抱歉遅到現在才回信!因為我的公司環境問題必須遠端登入另一電腦才能連到該論壇...很麻煩...

    1.html部分如下

        <aspStick out tongueanel ID="pnlSub01" runat="server" Visible="False" Width="98%">
            <table border="0" cellpadding="0" cellspacing="0" width="100%">
                <tr>
                    <td align="left">
                        <strong>01. aaa</strong></td>
                    <td align="right" width="150px">
                        <span style="font-size: 10pt">單位:元</span>
                        <!-------------------------------------------------------------------------------->
                    </td>
                </tr>
            </table>
            <table border="1" cellpadding="0" cellspacing="0" width="100%" style="font-size: small">
                <tr>
                    <td align="left" style="width: 20%; background-color: lightblue" rowspan="2">
                        aa</td>
                    <td height="20" style="width: 20%; background-color: lightblue">
                        bb</td>
                    <td height="20" style="width: 20%; background-color: lightblue">
                        cc</td>
                    <td height="20" style="width: 20%; background-color: lightblue">
                        dd</td>
                    <td height="20" style="width: 20%; background-color: lightblue">
                        &nbsp;ee</td>
                </tr>
                <tr>
                    <td style="width: 20%; background-color: lightblue; height: 20px;">
                        ti1/am1</td>
                    <td style="width: 20%; background-color: lightblue; height: 20px;">
                        ti2/am2</td>
                    <td style="width: 20%; background-color: lightblue; height: 20px;">
                        ti3/am3</td>
                    <td style="width: 20%; background-color: lightblue; height: 20px;">
                        ti4/am4</td>
                    <td style="width: 20%; background-color: lightblue; height: 20px;">
                    </td>
                </tr>

             <tr>

               ...以下重複12次

             </tr>

    2.vb部分如下;

            Dim connstring As String = WebConfigurationManager.ConnectionStrings("aaa").ConnectionString
            Dim conn As New SqlConnection(connstring)
            conn.Open()
            Dim strSql As String = "SELECT   *  FROM bbb"
            Dim da As SqlDataAdapter = New SqlDataAdapter(strSql, conn)
            Dim ds As DataSet = New DataSet : da.Fill(ds, "bbb")
            Dim i, j As Integer
            For i = 0 To ds.Tables(0).Rows.Count - 1
                Dim LM As New TextBox
                LM = CType(FindControl("LM" & i.ToString), TextBox)
                'LM.Text = ds.Tables(0).Rows(i).Item(0).ToString
                Dim dt As String = ds.Tables(0).Rows(i).Item(0).ToString()
                'LM.Text = dt
                Response.Write(dt)
            Next
            conn.Close()
            conn.Dispose()
            da.Dispose()

    上面亂試了許多語法,很亂...請見諒!

    2007年8月20日 上午 12:29
  • HI,

     

    如果您要填入的是資料庫記錄, 而且記錄都已經讀到DataSet中了, 建議可以用Repeater控制項(如果不打算使用GridView控制項或是FormView控制項), 將ds.Table(0)塞給Repeater控制項顯示就好, 又快又方便

     

    tihs

    2007年8月20日 上午 02:59
  • 謝謝tihs提供的意見!

    很抱歉我對Repeater控制項不熟,經你提示後稍微查一下,不過我想做的是資料讀出來後還能讓人編輯修改,不知用哪種方式比較好?

    2007年8月20日 上午 03:36
  • HI,

     

    ASP.NET 2.0提供的GridView控制項和DetailsView控制項都內建編輯/刪除, 甚至是新增記錄的功能, 使用起來很方便, 如果要用Repeater, 須費一點手腳, 才能做出編輯功能.

     

    tihs

     

    2007年8月21日 上午 01:36