HTML CODE:
<cc1:SPASDataGrid ID="dgPayments" runat="server" AutoGenerateColumns="false" ShowFooter="true" Ajaxify="true">
<EditItemStyle VerticalAlign="Top"></EditItemStyle>
<FooterStyle VerticalAlign="Top"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="Pay To">
<FooterTemplate>
<table id="Table3" runat="server">
<tr>
<td>
<uc1:AnyDropDown ID="ddRolloverSource" runat="server" TableName="system_code" DisplayFieldName="description" CodeFieldName="code_value" WhereClause="PAYROLL_REQUEST" OnSelectedIndexChanged="ddRolloverSource_SelectedIndexChanged" AutoPostBack="true"></uc1:AnyDropDown>
</td>
</tr>
</table>
</FooterTemplate>
<ItemTemplate></ItemTemplate>
<EditItemTemplate></EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Post Tax Amount">
<FooterTemplate>
<table>
<tr>
<td>
<cc1:SPASRadioButton Checked="true" Text="All" ID="rbPostTaxAll" GroupName="rbPostTaxAllOrRemaining" TabIndex="40" runat="server" CssClass="CheckBoxList"></cc1:SPASRadioButton>
</td>
<td >
<cc1:SPASDropDownList ID="ddlPostTaxAmountOrPercentageF" TabIndex="80" runat="server">
<asp:ListItem Selected="true" Value="Amount">Amount</asp:ListItem>
</cc1:SPASDropDownList>
</td> </tr>
</table>
</FooterTemplate>
<ItemTemplate></ItemTemplate> <EditItemTemplate></EditItemTemplate>
</Columns>
</cc1:SPASDataGrid>
代码隐藏:
Protected Sub ddRolloverSource_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
'Disable the rbPostTaxAll and ddlPostTaxAmountOrPercentageF controls
End Sub
我正在尝试访问位于Datagrid中的下拉列表的selectedIndexChanged事件内的Datagrid中的控件。
答案 0 :(得分:1)
如果您使用的是普通的GridView,那么就是这样做的。 您只需要在每一行中找到该控件然后就可以禁用它
Protected Sub ddRolloverSource_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
For Each myDR As GridViewRow In GridView1.Rows
If myDR.RowType=GridViewRowType.DataRow Then
Dim FoundRadioButton As RadioButton = DirectCast(myDR.FindControl("rbPostTaxAll"), RadioButton)
Dim FoundDropDownList As DropDownList = DirectCast(myDR.FindControl("ddlPostTaxAmountOrPercentageF"), DropDownList)
FoundRadioButton.Enabled = False
FoundDropDownList.Enabled = False
End If
Next
End Sub
编辑添加了比尔的建议
EDIT为DataGrid添加了解决方案
对于DataGrid,请使用此
Protected Sub ddRolloverSource_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim RowCount As Integer = DataGrid1.Items.Count - 1
For i As Integer = 0 To RowCount - 1
Dim RowItem As DataGridItem = DataGrid1.Items(RowCount)
Dim FoundRadioButton As RadioButton = DirectCast(RowItem.FindControl("rbPostTaxAll"), RadioButton)
Dim FoundDropDownList As DropDownList = DirectCast(RowItem.FindControl("ddlPostTaxAmountOrPercentageF"), DropDownList)
FoundRadioButton.Enabled = False
FoundDropDownList.Enabled = False
Next
End Sub
答案 1 :(得分:0)
终于找到了解决方案。
Protected Sub ddRolloverSource_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim tbl As Table = DirectCast(dgPayments.Controls(0), Table)
Dim footer As DataGridItem = DirectCast(tbl.Controls(tbl.Controls.Count - 1), DataGridItem)
Dim rbPostTaxAll As RadioButton = DirectCast(footer.FindControl("rbPostTaxAll"), RadioButton )
Dim rbPostTaxRemaining As DropDownList = DirectCast(footer.FindControl("rbPostTaxRemaining"), DropDownList )
rbPostTaxAll .Enabled = False
rbPostTaxRemaining .Enabled = False
End Sub