Asp.net更新了DropDownList选中的项目

时间:2015-07-01 15:59:14

标签: c# asp.net

我在使用DropDownList项目进入表单时遇到了问题。 主窗体是由SQLDataSource提供的...所有窗体小部件都绑定到特定的记录字段等。 我使用DropDownList更改了一个窗体小部件(一个TextBox),以允许用户只在多个值之间进行选择...我通过另一个SQLDataSource提供此控件。虽然表单处于插入模式但没有问题但是当我切换到编辑模式时,我无法使用来自主记录的值设置DropDownList所选项目。何我能解决这个问题吗? 这是我的.aspx代码示例:

<asp:FormView ID="_frmData" runat="server" DataKeyNames="id" DataSourceID="_sdsTable1" DefaultMode="Insert">
    <InsertItemTemplate>
        <asp:TextBox ID="_txtField0" runat="server" Text='<%#Bind("field0")%>'/>
        <asp:DropDownList ID="_ddlField1" runat="server" DataSourceID="_sdsTable2" DataTextField="field_text" DataValueField="field_value" AppendDataBoundItems="true">
            <asp:ListItem Value="" Text="None" Selected="True" />
     </asp:DropDownList>
</InsertItemTemplate>
<EditItemTemplate>
     <asp:TextBox ID="_txtField0" runat="server" Text='<%#Bind("field0")%>'/>
     <asp:DropDownList ID="_ddlField1" CssClass="input_medium" runat="server" DataSourceID="_sdsTable2" DataTextField="field_text" DataValueField="field_value" AppendDataBoundItems="true">
           <asp:ListItem Value="" Text="None" Selected="True" />
     </asp:DropDownList>
</EditItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="_sdsTable1" runat="server" ConnectionString="<%$ ConnectionStrings:_db %>"
                    ProviderName="<%$ ConnectionStrings:_db.ProviderName %>"
                    SelectCommand=" SELECT
                                        field0, field1
                                    FROM
                                        table1
                                    WHERE
                                        id=@id;"
                    UpdateCommand=" UPDATE
                                        table1
                                    SET
                                       `field0` = @field0
                                       `field1` = @field1
                                    WHERE
                                        id = @id;""
                    InsertCommandType="StoredProcedure"
                    InsertCommand="create_table1_entry">
<InsertParameters>
    <asp:ControlParameter Name="field1" ControlID="_frmData$_ddlField1" Type="String" PropertyName="SelectedItem.Text" />
</InsertParameters>
<UpdateParameters>
    <asp:ControlParameter Name="field1" ControlID="_frmData$_ddlField1" Type="String" PropertyName="SelectedItem.Text" />
</UpdateParameters>
</asp:SqlDataSource>

<asp:SqlDataSource ID="_sdsTable2" runat="server" ConnectionString="<%$ ConnectionStrings:_db %>"
                    ProviderName="<%$ ConnectionStrings:_db.ProviderName %>"
                    SelectCommand=" SELECT
                                        field_value, field_text
                                    FROM
                                        table2;" />

2 个答案:

答案 0 :(得分:1)

Try This

myDropDown.Items.FindByValue("Your Main Record Value").Selected=true;

OR

myDropDown.Items.FindByText("Your Main Record Text").Selected=true;

答案 1 :(得分:0)

我只能使用SelectedValue =&#39;&lt;%#Bind(&#34; field1&#34;)%&gt;&#39; DDL中的属性实现了结果,正如我猜测的那样。这里唯一的问题是为什么Intellisense不建议将SelectedValue作为DropDownList的一个主题... thnx everyone。