DropDownList绑定获取数据绑定方法(如Eval(),XPath()和Bind())只能在数据绑定控制异常的上下文中使用

时间:2015-06-15 16:36:07

标签: c# asp.net drop-down-menu binding bind

我为这个问题而生气... 我有一个用户控件,其中包含用于插入操作的FormView和用于所有其他操作的GridView。

在两个控件中我都有一个DropDownList如下:

<asp:DropDownList ID="DropDownList" runat="server"
    DataSourceID="ObjectDataSource" 
    DataTextField="Text"
    SelectedValue='<%# Bind("Code") %>'
    DataValueField="Code"
    AppendDataBoundItems="True" Width="200px" />

如果FormView中的DropDownList存在,则会出现主题中的错误,如果我发表评论,GridView中的DropDownList工作正常!它以编辑模式绑定并更新值而不会出现任何问题!

但它们是相同的,只有ID更改。

有趣的是,我还有另一个页面,它有相同的控件......

有人有任何想法吗?

谢谢

更多细节:

没有页面加载的SelectedValue属性,但是当我尝试插入新数据时,我得到一个null exeption

其他细节:

<asp:Panel ID="PanelInsertPortfolio" runat="server">
    <asp:FormView ID="FormView" runat="server" DefaultMode="Insert" DataSourceID="ObjectDataSourceForm">
        <InsertItemTemplate>
            <asp:Table runat="server">
                <asp:TableHeaderRow>
                    <asp:TableHeaderCell Text="Column 1" />
                    <asp:TableHeaderCell Text="Column 2" />
                    <asp:TableHeaderCell Text="Column 3" />
                </asp:TableHeaderRow>
                <asp:TableRow>
                    <asp:TableCell>
                        <%-- TextBox with server side validators --%>
                    </asp:TableCell>
                    <asp:TableCell>
                        <%-- TextBox with server side validators --%>
                    </asp:TableCell>
                    <asp:TableCell>
                        <asp:DropDownList ID="DropDownList" runat="server" DataSourceID="ObjectDataSourceDropDownList" 
                            DataTextField="Name" SelectedValue='<%# Bind("Code") %>' DataValueField="Code" AppendDataBoundItems="True" Width="200px">                        
                        </asp:DropDownList>
                        <br />
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server"
                            ControlToValidate="DropDownList" ValidationGroup="ValGroup"
                            ErrorMessage="Required" Display="Dynamic" ForeColor="Red" />
                    </asp:TableCell>
                    <asp:TableCell>
                        <asp:ImageButton ID="ImageButton" runat="server" CausesValidation="True"
                            ValidationGroup="ValGroup" CommandName="Insert"
                            ImageUrl="Image.png" />
                    </asp:TableCell>
                </asp:TableRow>
            </asp:Table>
        </InsertItemTemplate>
    </asp:FormView>
</asp:Panel>

<asp:ObjectDataSource ID="ObjectDataSourceDropDownList" runat="server" SelectMethod="GetDataByName"
    TypeName="BLProject.BusinessLogic, BLProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1dd7d67e2859f7d9">
</asp:ObjectDataSource>

FormView已绑定到另一个ObjectDataSource。 用户控件依赖于SharePoint 2013。

1 个答案:

答案 0 :(得分:0)

我尝试将另一个ObjectDataSource仅用于插入操作,我不知道为什么,它有效!