2010-05-10 7 views
0

Я создаю страницу GridView/DetailsView. У меня есть сетка, которая отображает кучу строк, когда выбрана строка, она использует DetailsView для включения Insert/Update.Set DetailsView как выбранная строка GridView

Вопрос, что это лучший способ связать их? Я не хочу снова обращаться к веб-сервису, все данные, которые мне нужны, находятся в выбранной строке сетки. У меня в основном есть 2 отдельных источника данных, которые используют одно и то же «DataObjectTypeName», первый источник данных извлекает данные, а другой - CRUD.

Каков наилучший способ передачи строки выбранного сетки в представление деталей? Должен ли я вручную обрабатывать события «Вставка/обновление» и сам вызвать источник данных?

Невозможно ли связать эти два, чтобы они использовали один и тот же источник данных?

<asp:GridView ID="gvDetails" runat="server" DataKeyNames="ID, Code" 
       DataSourceID="odsSearchData" > 
    <Columns> 
     <asp:BoundField DataField="RowA" HeaderText="A" SortExpression="RowA" /> 
     <asp:BoundField DataField="RowB" HeaderText="B" SortExpression="RowB" /> 
     <asp:BoundField DataField="RowC" HeaderText="C" SortExpression="RowC" /> 



    ....Code... 

<asp:DetailsView ID="dvDetails" runat="server" DataKeyNames="ID, Code" 
       DataSourceID="odsCRUD" GridLines="None" DefaultMode="Edit" AutoGenerateRows="false" 
       Visible="false" Width="100%"> 
     <Fields> 
      <asp:BoundField DataField="RowA" HeaderText="A" SortExpression="RowA" /> 
      <asp:BoundField DataField="RowB" HeaderText="B" SortExpression="RowB" /> 
      <asp:BoundField DataField="RowC" HeaderText="C" SortExpression="RowC" /> 

... 

ответ

1

Стандартный способ сделать это будет иметь выбранный элемент из griview быть управляющим параметром для ObjectDataSource вы проводная до DetailsView. Я бы, наверное, не слишком беспокоился о накладных расходах на данные, которые у вас уже есть, если вы не обслуживаете пользователей с такими медленными соединениями, которые вы хотите избежать заездов на веб-сервер любой ценой.

Если вы действительно хотите этого избежать, вы можете вытащить данные из gridview с помощью javascript/jquery, а затем сделать свои вставки/обновления через вызовы ajax. Тем не менее, для этого потребуется намного больше кодирования.

Смежные вопросы