在转发器中的复选框上启用禁用cehckboxes [英] enbable disable cehckboxes on checkbox in repeater

查看:85
本文介绍了在转发器中的复选框上启用禁用cehckboxes的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆