在EntityDataSource中使用布尔Asp ControlParameter

时间:2013-11-29 17:20:07

标签: c# asp.net data-binding

您好我将此EntityDataSource绑定到ListView

<asp:EntityDataSource ID="EntityDataSource_utenti" runat="server" 
    ConnectionString="name=db_shieldtrustEntities" 
    DefaultContainerName="db_shieldtrustEntities" EnableFlattening="False" 
    EntitySetName="utenti" Include="elenco_utenti" 
    AutoGenerateWhereClause="True" Where="" EntityTypeFilter="" Select="">
    <WhereParameters>
        <asp:ControlParameter ControlID="DropDownList_tipo_utente" Name="tipo_utente" 
            PropertyName="SelectedValue" Type="Int16" />
        <asp:ControlParameter ControlID="DropDownList_abilitazione" Name="ablitato" 
            PropertyName="SelectedValue" Type="Boolean" />
    </WhereParameters>
</asp:EntityDataSource>

第二个ControlParameter被称为DropDownlist,以这种方式定义

<asp:DropDownList ID="DropDownList_abilitazione" runat="server" AutoPostBack="true"  />

并填写页面加载事件

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {                
            //databinding della ddl dell'abilitazione utente
            DropDownList_abilitazione.Items.Clear();
            DropDownList_abilitazione.Items.Insert(0, new ListItem("-Abilitazione-", ""));
            DropDownList_abilitazione.Items.Insert(1, new ListItem("Abilitato","1"));
            DropDownList_abilitazione.Items.Insert(2, new ListItem("Disabilitato", "0"));
        }

    }

但是当我在DDL中更改一个Item时,我得到了这个错误:字符串未被识别为有效的布尔值。

1 个答案:

答案 0 :(得分:0)

字符串“1”和“0”不是有效的Boolean值。改为使用“True”和“False”。

DropDownList_abilitazione.Items.Insert(0, new ListItem("-Abilitazione-", ""));
DropDownList_abilitazione.Items.Insert(1, new ListItem("Abilitato","True"));
DropDownList_abilitazione.Items.Insert(2, new ListItem("Disabilitato", "False"));