在转发器中的复选框上启用禁用cehckboxes [英] enbable disable cehckboxes on checkbox in repeater
问题描述
<asp:PlaceHolder ID="PlaceHolder3" runat="server" Visible=false > <Strong>Hotel Requirement</Strong>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>id</th>
<th align=left>Room Categories</th>
<th>single</th>
<th>Double</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td width="5%">
<asp:Label ID="Label3" runat="server" Text= '<%# Container.DataItem("packageid")%>' /></td>
<td> <asp:CheckBox ID="chk_packages" AutoPostBack=true runat="server" Text = <%#Container.DataItem("package_name")%> /> </td>
<td><%#Container.DataItem("single_rate")%><asp:CheckBox AutoPostBack=true ID="single" Enabled=false runat="server" /></td>
<td><%#Container.DataItem("double_rate")%><asp:CheckBox AutoPostBack=true ID="Double" runat="server" /></td>
<td><asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</asp:PlaceHolder>
我想要这样,当在转发器中单击任何程序包复选框时,在同一行中并启用了转发器中的其他两个复选框(单,双获取启用).
当我取消选中它时,它们也会被禁用.
我在应用程序中写了一些东西来做,但是不能按要求工作.
参见代码
I want so that when any package checkbox is clicked in repeater, two other checkboxes in repeater (single,double get enable) in the same row and enabled.
When I un-uncheck it, they are also disabled.
I write some stuff in my application in order to do but it''s not working as required.
See the code
Private Sub Repeater1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles Repeater1.ItemCreated
Dim ri As RepeaterItem = CType(e.Item, RepeaterItem)
Dim elemType As ListItemType = e.Item.ItemType
If (elemType = ListItemType.Item) OrElse (elemType = ListItemType.AlternatingItem) Then
Dim cb As CheckBox = ri.FindControl("chk_packages")
AddHandler cb.CheckedChanged, AddressOf Me.myCheckedChanged
'cb.CheckedChanged += New EventHandler(CheckedChanged)
End If
End Sub
Private Sub myCheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
/// I need help here
end sub
推荐答案
问题已经解决,我已经做到了
problem has been resolved , i already did it
好,现在问题已解决",现在我需要进行一定的验证,这意味着至少必须选择一个包,并且其中一个都必须选择或双人间
因此,在提交按钮后面,我编写了以下代码
ok now that problem has been "reslolved" now i need to put certain validation in that means at least one Packages must be selected with either single or double rooms
so behind submitt button i write follwoing code
<pre lang="vb">''get how many packages hav been selected<br />
Dim c As Int32<br />
Dim str As String<br />
For Each dataItem As RepeaterItem In Repeater1.Items<br />
Dim ckchecked As CheckBox = DirectCast(dataItem.FindControl("chk_packages"), CheckBox)<br />
<br />
<br />
If ckchecked.Checked Then<br />
Dim chk_single As CheckBox = DirectCast(dataItem.FindControl("single_rate"), CheckBox)<br />
Dim chk_double As CheckBox = DirectCast(dataItem.FindControl("double_rate"), CheckBox)<br />
<br />
If chk_single.Checked Then<br />
c = c + 1<br />
ElseIf chk_double.Checked Then<br />
c = c + 1<br />
End If<br />
<br />
<br />
End If<br />
Next<br />
<br />
If c = 0 Then<br />
lbl_error_package.Visible = True<br />
<br />
lbl_error_package.Text = "please select at least one package"<br />
Else<br />
<br />
lbl_error_package.Visible = False<br />
End If</pre><br />
和.aspx页面是
and .aspx page is
<pre lang="xml"><asp:Repeater ID="Repeater1" runat="server"><br />
<HeaderTemplate><br />
<table border="1" width="100%"><br />
<tr><br />
<th>id</th><br />
<th align=left>Room Categories</th><br />
<th>single</th><br />
<th>Double</th><br />
<br />
</tr><br />
</HeaderTemplate><br />
<ItemTemplate><br />
<br />
<tr><br />
<td width="5%"><br />
<asp:Label ID="Label3" runat="server" Text= ''<%# Container.DataItem("packageid")%>'' /></td><br />
<td> <asp:CheckBox ID="chk_packages" AutoPostBack=true runat="server" Text = <%#Container.DataItem("package_name")%> /> </td><br />
<br />
<td><%#Container.DataItem("single_rate")%><asp:CheckBox AutoPostBack=true ID="single" Enabled=false runat="server" />Number of Rooms<asp:TextBox ID="txt_single" Enabled=false width="10px" MaxLength="2" runat="server"></asp:TextBox></td><br />
<br />
<td><%#Container.DataItem("double_rate")%><asp:CheckBox AutoPostBack=true ID="Double" Enabled=false runat="server" />Number of Rooms<asp:TextBox ID="txt_double" Enabled =false width="10px" MaxLength="2" runat="server"></asp:TextBox></td><br />
<td></td><br />
</tr><br />
<br />
</ItemTemplate><br />
<br />
<FooterTemplate><br />
<br />
</table><br />
</FooterTemplate><br />
<br />
</asp:Repeater></pre><br />
无法找到控制权并给出异常
对象引用未设置为对象的实例.
its unable to find control and give exception
Object reference not set to an instance of an object.
<pre lang="vb">Dim chk_single As CheckBox = DirectCast(dataItem.FindControl("single_rate"), CheckBox)</pre><br />
我需要检查用户是否选择套餐,他必须选择单人或双人房套餐
我希望我在问题上很清楚
i need to check if user select package he must select either single or double room package
i hope i m quite clear in problem
这篇关于在转发器中的复选框上启用禁用cehckboxes的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!