将相同的ASP.NET控件放在页面的不同区域

时间:2010-02-04 21:27:02

标签: asp.net vb.net user-controls duplication

我有一些我继承的代码,它并不是世界上最伟大的代码,但它有效,只有一个小例外:

此页面是目录搜索,它具有由记录ID标识的控件,但是存在可以存在多个具有相同记录ID的结果的情况,从而使得.NET barf。我最初实施的检查只是没有将控件放在页面上,如果它已经存在,但我们一直得到负面反馈。

我的问题是:有没有办法将同一个控件同时放在两个地方,例如,如果用户检查一个,相应的一个也检查?我对.NET的行为方式并不十分了解,但如果需要,我会尝试提供尽可能多的附加上下文。

编辑:这是更新的代码,它通过循环结果的数据表来生成控件

Dim cbxSendInfo As CheckBox
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Debug.text = Debug.text & "&nbsp;&nbsp;&nbsp;&nbsp;Loading Checkbox (" & strCheckboxID & ")...<br />"

cbxSendInfo = New CheckBox
cbxSendInfo.ID = strCheckboxID
cbxSendInfo.enableViewState = true

这是找到控件并构建联系人列表的代码:

Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i          
Dim cbxSendInfo As CheckBox = Me.tblResults.FindControl(strCheckboxID)

If cbxSendInfo.Checked Then
    alOrganizers.Add(drOrganizer("ID"))
End If

其中drOrganizer(“ID”)是记录ID,而i是结果记录号。

我知道这是一种可怕的方法,至少从我的背景来看,但就像我说的,这是继承的代码,已被黑客攻击碎片。

3 个答案:

答案 0 :(得分:0)

您只能通过 JavaScript

执行此操作

答案 1 :(得分:0)

我想我已经设法产生了我想要的结果,我有两个条目的复选框,它们不会互相切换,但是没关系。我能够将结果行号附加到复选框ID。

答案 2 :(得分:0)

你可以有重复的结果,但如果记录ID是关键,那么出了点问题。另外,我不明白控件ID与记录ID有什么关系;代码示例可能会有所帮助: - )