2010-02-04 96 views
0

我有我继承了一些代码,它不是世界上最伟大的,但它的工作原理,有一个小小的例外:放置在页面的不同区域相同的ASP.NET控件

此页是一个目录搜索,它具有由记录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,而我是结果记录号。

我知道这是一个可怕的方式来做到这一点,至少从我的背景,但就像我说的,这是被破解的遗传代码。

+0

您使用的是什么类型的数据绑定控件? – IrishChieftain 2010-02-04 21:41:12

+0

我正在使用复选框控件。基本上说,我有一个结果集,可能包含“重复”结果,相同的记录ID,但地址数据不同。我比使用findcontrol来获取这些控件,看看他们是否被检查,并发送相关记录。 – 2010-02-04 21:50:46

回答

0

我觉得我已经成功地生产我想要的结果,我有两个条目复选框,他们不切换对方,但没关系。我能够将结果行号附加到复选框ID。

0

你只能做到这一点通过的JavaScript

+0

这就是我想的。如果可能,我想避免这种情况。我正在寻找使这些标识符具有唯一性的方法,以便我的FindControl调用仍可以运行。 – 2010-02-04 22:09:41

0

您可以有重复的结果,但是如果记录ID是关键字,则说明有问题。另外,我不明白控制ID与记录ID有什么关系;代码示例可能有所帮助:-)

相关问题