1
我有以下情形:如何避免在使用多選RadComboBox時對ItemSelected進行回發?
<%-- UF --%>
<tr>
<td>
<label>UF</label>
<br />
<telerik:RadComboBox ID="rcbUF" runat="server" CheckBoxes="True" EnableCheckAllItemsCheckBox="True" CausesValidation="false"
Culture="pt-BR" CssClass="lt-width-10" MaxHeight="250" OnItemChecked="rcbUF_ItemChecked" AutoPostBack="true">
</telerik:RadComboBox>
</td>
</tr>
<%-- Rodovia --%>
<tr>
<td>
<label>Rodovia</label>
<br />
<asp:UpdatePanel runat="server" ID="uppRodovia">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rcbUF" />
</Triggers>
<ContentTemplate>
<telerik:RadComboBox ID="rcbRodovia" runat="server" CheckBoxes="True" EnableCheckAllItemsCheckBox="True" Culture="pt-BR" MaxHeight="250" CssClass="lt-width-10" />
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
當一個項目上rcbUF檢查,下面的方法被調用(類似的東西):
protected void rcbUF_ItemChecked(object sender, RadComboBoxItemEventArgs e)
{
if (rcbUF.HasSelectedValue())
{
var _listaUF = rcbUF.Items.Where(x => x.Checked).Select(x => x.Value).ToList();
var _rodovias = Repositorio<Rodovia>.GetAll.Where(x => x.ListaUF.Any(y=>_listaUF.Contains(y.UF.Id))).Select(x => x.Id).ToArray();
if (_listaUF.Count > 0)
{
rcbRodovia.Carregar<Rodovia>(x => x.Numero, x => x.Id,
Constantes.TextoVazioEspaco,
true,
x => _rodovias.Contains(x.Id),
x => x.Numero);
}
else
{
rcbRodovia.Carregar<Rodovia>(x => x.Numero, x => x.Id,
Constantes.TextoVazioEspaco,
true,
x => x.Numero);
}
rcbRodovia.Items.Distinct();
rcbRodovia.Enabled = true;
}
}
我的問題是,每次我點擊項而不是複選框,它會觸發一個回發(很多OnItemSelected方法),我真的不希望它發生。
我在這裏錯過了什麼,或者它只是預期的行爲而沒有辦法繞過它?
想你的建議,但JS函數結束了從來沒有被調用。 –
哪裏有附加OnClientSelectIndexChanging事件? –
從我測試過的幾乎任何其他客戶端事件都被觸發,但不是OnClientSelectIndexChanging。看起來服務器事件被觸發,但不是客戶端事件。 –