2014-07-13 67 views
0

從最後幾天我想要訪問asp.net vb代碼文件中的不同的控制ID,我把它放在像TextBox,Label和Dropdown列表的GridView模板字段裏面。我想要做的是,我有一個SQL表「coursereg」與不同的列。我把一個gridview,並添加了一個模板領域,並把「在GridView控件生成自動列爲false」我把一個HTML表格在該臨時領域,並把一些控制。該表中的一些控件與文本框和標籤等sql表「coursereg」字段綁定,並且某些用戶將填寫自己的內容。現在我有一個提交按鈕的形式,將所有文本添加到另一個名爲FA的SQL表。在這裏,當我嘗試添加這些控件的值/文本與cmd.CommandText像cmd.Parameters.AddWithValue(「@名稱」,txtname.text.string)文本框ID txtname不會填充並顯示錯誤的txtbox沒有聲明它可能是無法訪問,由於其保護級別,並明智地顯示了所有控件,我把它放在gridview內同樣的錯誤。請在這方面幫助我plzzz我正在學習asp.net(V.b)我的自我,並沒有太多的編程技巧來解決它。GridView模板字段內的訪問控制

Protected Sub Button1_Click(sender As Object, e As EventArgs) 
    cmd.CommandText = "INSERT INTO FA (regno,photo,name,parentage,address,Phone,foccupation,income,category,class,rollno,course,subjects,actnumber,actname,acttype,bankname,branchname) " & _ 
       "values(@regno,@photo,@name,@parentage,@address,@Phone,@foccupation,@income,@category,@class,@rollno,@course,@subjects,@actnumber,@actname,@acttype,@bankname,@branchname)" 
    cmd.Parameters.AddWithValue("@name", txtname.text.string) 

    ' i (tried this but does not work) Dim text As TextBox = TryCast(grd.Controls(0).Controls(0).FindControl("textname"), Text) 
End Sub 

<asp:TextBox ID="TextBox1" runat="server" Enabled="False" ReadOnly="True" Text='<%# String.Format("{0} {1} {2}", Eval("sfname"), Eval("smname"), Eval("slname")) %>' Height="22px" Width="308px" Font-Size="12pt"></asp:TextBox> 

回答

1

想一想。你有一個網格,你添加了一些文本框(txtname)到行模板。這意味着您不會創建單個文本框,但網格中有多行。所以這就是爲什麼你不能僅僅從Button1_Click訪問txtname的原因。

目前還不清楚您是否要爲所有行多次調用該INSERT語句,但如果是的話,那麼您可以使用類似的東西(對於C#代碼抱歉,但您可能會了解如何轉換即VB.NET):

foreach (GridViewRow row in grd.Rows) 
{ 
    var txt = row.FindControl("textname") as TextBox; 
    if (txt != null) 
    { 
     // INSERT STATEMENT with txt.Text 
    } 
} 

重要提示:此任務中的主要關注點是如何實際綁定網格。您必須考慮頁面生命週期。如果您將網格綁定到Page_Load上,那麼您可能會獲得空的文本框值,而不是實際輸入的值。這是因爲Button1_Click事件處理程序在Page_Load和LoadPostData進入PageLoad之前。 LoadPostData是頁面生命週期中的事件,當服務器端輸入(如所有txtname文本框)的值從您在客戶端輸入的內容中複製時。

+0

Thanx爲您的答覆有幾件事我想清除網格沒有綁定頁面加載頁面加載時會有一個單一的文本框和一個按鈕,並在用戶在文本框中的用戶將進入他的一些指令註冊號碼和按鈕點擊事件時,select命令將被執行,並且在gridview內部的表格將被顯示並且隨後被綁定的相關文本框的值被顯示。在底部會有另一個按鈕「提交」,它將一次執行所有控件的插入語句。 – arshad

+0

如果你有一個單獨的文本框,那麼把它放在網格中是沒有意義的。把它移出來讓生活變得更簡單。 –