Asp.net 为什么这个标签.文本不起作用?

Asp.net 为什么这个标签.文本不起作用?,asp.net,vb.net,sqldatasource,Asp.net,Vb.net,Sqldatasource,我有一个内容VB页面,在该页面中,我尝试以编程方式更改SqlDataSource中的Select 我的代码: <asp:Content ID="Content6" ContentPlaceHolderID="MainContent" Runat = "server"> <table width="630"> <tr> <td> Dim Label2 As New Label() Label2.Text = "Bro" </td> &

我有一个内容VB页面,在该页面中,我尝试以编程方式更改SqlDataSource中的Select

我的代码:

<asp:Content ID="Content6" ContentPlaceHolderID="MainContent" Runat = "server"> 
<table width="630">
<tr> <td>
Dim Label2 As New Label()
Label2.Text = "Bro"
</td>

<td>

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
 ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
 SelectCommand="SELECT * FROM [Docs1] WHERE ([Type] = @Type)">
 <SelectParameters>
 <asp:ControlParameter Name="Type" 
 ControlID="Label2"
 PropertyName="Text" 
  />

 </SelectParameters>

 </asp:SqlDataSource>
 </td>
 <td>
 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" 
 DataSourceID="SqlDataSource2" CellPadding="4" ForeColor="#333333" 
 GridLines="None"  Font-Names="Arial" 
 >

 <AlternatingRowStyle BackColor="White" Font-Size="XX-Small"  Font-Bold="False" 
 ForeColor="#284775" Font-Names="Times New Roman" Font-Underline="False" />

 <Columns>
  .......
 </asp:GridView>

尺寸标签2作为新标签()
Label2.Text=“Bro”
.......
SqlDataSource未获取Label2.Text。我做得不对的是什么?
我必须在页面上多次更改select参数(从“BLah1”更改为“Blah2”等),而无需用户执行任何操作,因此除了页面加载之外,没有按钮等,基本上没有事件。我想使用不可见标签并更改其文本,通过这种方式-更改选择。

您还应该将标签添加到表单并设置其ID属性。即

Dim Label2 As New Label()
Label2.ID = "Label2" 
Form.Controls.Add(Label2)
Label2.Text = "Bro"

Thaks platon,但现在它说:谢谢platon,但现在它说-在控件参数“Type”中找不到控件“Label2”。很可能,您的标签位于UserControl或任何其他InAdminContainer对象中。这意味着它的UniqueID不会被标记为2,因此ASP.NET无法在表单上找到该控件。一种可能的解决方案是更改参数的ControlID属性并将其映射到标签的UniqueID。第二个想法是,在执行绑定过程之后,创建标签太晚了。请尝试在Page_Load方法中创建标签。尝试在Page_Load中创建标签。相同的结果-在控件参数“Type”中找不到控件“Label2”。我看到了很多关于以编程方式更改参数的问题,但没有用户不执行操作的示例。你能给我一个链接到详细的解释和例子吗?还有请-可能是一个链接到控件背后的逻辑解释,因为否则它可能解决了一个问题,但没有解释为什么它可以解决,所以你可以上传一个样本到某个地方让我看一下吗?现在,我不知道你的应用程序中发生了什么。我的测试使用此代码正常工作。