2014-07-13 31 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

如果你有一个单独的文本框,那么把它放在网格中是没有意义的。把它移出来让生活变得更简单。 –