1

我在 radgrid 编辑表单模板中使用了两个 radcombobox

    <div class="art-layout-cell layout-item-1" style="width: 100%;">
    <div class="art-layout-cell layout-item-4" style="width: 30%;">
        <asp:Label ID="label_SelectCompany" AssociatedControlID="cmb_company" runat="server" Text="Company Name:" />
    </div>
    <div class="art-layout-cell layout-item-4" style="width: 60%;">
        <telerik:RadComboBox runat="server" ID="cmb_company" Height="250" AppendDataBoundItems="True" CausesValidation="False" CollapseDelay="10" SelectedValue='<%# Bind("CompanyID") %>'
            DataMember="DefaultView" AutoPostBack="true" ExpandDelay="0" ItemRequestTimeout="0" Width="80%" MarkFirstMatch="True" EmptyMessage="- Select Company -"
            DataSourceID="SqlDataSource_Company" DataTextField="CompanyName" DataValueField="ID" OnSelectedIndexChanged="cmb_company_SelectedIndexChanged" />
        <asp:RequiredFieldValidator ID="CompanyRequired" runat="server" ControlToValidate="cmb_company" ErrorMessage="*" ForeColor="Red" ValidationGroup="CompanyGroup" />
    </div>
</div> 
<div class="art-layout-cell layout-item-1" style="width: 100%;">
    <div class="art-layout-cell layout-item-4" style="width: 30%;">
        <asp:Label ID="label_CommercialActivity" AssociatedControlID="cmb_commercialActivity" runat="server" Text="Commercail Activity:" />
    </div>
    <div class="art-layout-cell layout-item-4" style="width: 60%;">
        <telerik:RadComboBox runat="server" ID="cmb_commercialActivity" AppendDataBoundItems="True" CausesValidation="False" CollapseDelay="10" DataMember="DefaultView"
            ExpandDelay="0" ItemRequestTimeout="0" Width="80%" MarkFirstMatch="True" EmptyMessage="- Select Commercial Activity -" SelectedValue='<%# Bind("EmployeeCommercialActivityID") %>'
            DataSourceID="SqlDataSource_CommercialActivity" DataTextField="CommercialActivityEnglishName" DataValueField="ID" />        
    </div>
</div>

并且 sqldatasource 是:

    <asp:SqlDataSource ID="SqlDataSource_CommercialActivity" runat="server" ConnectionString="<%$ ConnectionStrings:HRSystemDataBaseConnection %>" SelectCommand="SELECT APP_CompaniesCommercialActivities.ID, APP_CommercialActivities.CommercialActivityEnglishName FROM APP_CompaniesCommercialActivities INNER JOIN APP_CommercialActivities ON APP_CompaniesCommercialActivities.CommercialActivityID = APP_CommercialActivities.ID WHERE (APP_CompaniesCommercialActivities.CompanyID = @CompanyID) ORDER BY APP_CommercialActivities.CommercialActivityEnglishName">
    <SelectParameters>
        <asp:SessionParameter Name="CompanyID" SessionField="CompanyID" />
    </SelectParameters>
</asp:SqlDataSource>

<asp:SqlDataSource ID="SqlDataSource_Company" runat="server" ConnectionString="<%$ ConnectionStrings:HRSystemDataBaseConnection %>"
    SelectCommand="SELECT ID, CompanyName FROM APP_Companies ORDER BY CompanyName" />

代码隐藏是:

    protected void cmb_company_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
    Session["CompanyID"] = e.Value;
    GridEditFormItem _EditForm = (GridEditFormItem)((RadComboBox)sender).NamingContainer;
    RadComboBox _CommercialActivity = (RadComboBox)_EditForm.FindControl("cmb_commercialActivity");
    _CommercialActivity.ClearSelection();
}

当我尝试更改公司名称时,它显示错误
“数据绑定方法,如 Eval()、XPath() 和 Bind() 只能在数据绑定控件的上下文中使用。”

问候

4

0 回答 0