Установите DetailsView, чтобы показать заданную строку, используя QueryString и Inner Control с тем же значением - PullRequest
1 голос
/ 10 июня 2011

Я использую ASP.NET.

У меня есть DetailsView с DataSource для EntityDataSource. EntityDataSource имеет параметр WhereParameter, связанный с элементом управления на странице.

Мне нужно добавить логику, чтобы позволить DetailsView перейти в режим изменения (из ReadOnly в Edit) и отобразить результат для конкретной строки, переданной из строки запроса.

Чтобы перейти в режим редактирования, я использую:

DetailsView.ChangeMode(DetailsViewMode.Edit);

Но я не могу настроить DetailsView для отображения строки, переданной из моей строки запроса.

Я также получаю сообщение об ошибке:

A property with name 'CategoryId1' does not exist in metadata for entity type 

Мне кажется, что EntityDataSource, когда есть два CategoryId, создает некоторую путаницу и не может правильно связать DetailsView.

Есть идеи, как это сделать?

Вот мой фактический код для EntityDataSource.


   <asp:EntityDataSource ID="uxEntityDataSourceSelectEditNode" runat="server" AutoGenerateWhereClause="True"
            ConnectionString="name=xxx" DefaultContainerName="xxx"
            EnableDelete="True" EnableFlattening="False" EnableUpdate="True" EntitySetName="CmsCategories"
            Where="">
            <WhereParameters>
                <asp:ControlParameter ControlID="uxTreeView" Name="CategoryId" PropertyName="SelectedValue"
                    Type="Int32" />
                // Problem here
                <asp:QueryStringParameter DefaultValue="0" Name="CategoryId" 
                    QueryStringField="test" />
            </WhereParameters>
        </asp:EntityDataSource>
...