2013-03-21 54 views
-1

我在Repeater中有一个ListView,我喜欢从中继器中的tbl中检索Id值并将其分配给ListView内的txtBox。我的问题是我无法找到列表视图中的控件(这是在中继器控制内)。 (我是相当新的顺便说一句)在Repeater中查找ListView中的控件

我得到这个(对象引用未设置为obj的实例..)以防万一我想再次清除,我有一个中继器,我有两个表和在这个转发器中的listView。所以我想从表列中检索ID值作为每个项目显示在中继器中,并将此个人ID分配给ListView内的控件,以便我可以通过它们的primary.ID = FK.ID附加和显示数据。我通过“repeaterGetSelectedID”属性从repeater项中收集ID,并将它赋予中继器外的标签,但我想将此ID值分配给listView内的文本框,但我无法在listView中找到控件。希望我设法解释。谢谢!!!!绑定时

protected void repeaterID_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     ListView listView = e.Item.FindControl("listViewID") as ListView; 
     TextBox textBox = listView.FindControl("textBoxID") as TextBox; 

     textBox.Text = listView.StringYoureLookingFor; 
    } 
} 


确保设置中继器的OnItemDataBound属性为“repeaterID_ItemDataBound”这样的情况下居然被炒鱿鱼:

+0

发布您的转发器的标记。 – 2013-03-23 13:56:25

回答

1

你要使用ItemDataBound事件来访问中继器的控制其数据项。

+0

谢谢,我用上面的代码,我仍然有这个错误:对象引用未设置为对象的实例。它表示红色的txtBox。 – 2013-03-23 13:04:38

+0

你能粘贴你在这里使用的代码吗?请记住'listViewID'和'textBoxID'应该替换为你的控件的实际ID。所以如果它实际上名为listView1,那么你需要'FindControl(“listView1”)'。 “StringYoureLookingFor”也是如此 - 它只是您实际想要显示的值的占位符。 – McCee 2013-03-25 19:19:31

+0

您是否回答了这个问题? – McCee 2013-03-28 15:03:46