2014-01-17 2 views
1

Я пытаюсь построить сетку и детализировать для управления заметками пользователя.textarea inside detailsview asp.net

все отлично работает, но мне нужно, чтобы добавить текстовое поле с многострочным в детальном:

<asp:DetailsView ID="DetailsView1" ClientIDMode="Static" runat="server" SkinID="detailview" AllowPaging="True" Width="700px" AutoGenerateRows="False" DataKeyNames="id,Expr1" DataSourceID="SqlDataSource2" HeaderText="الملاحظات" oniteminserted="updategridview" onitemupdated="updategridview"> 
      <Fields> 
       <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" /> 
       <asp:BoundField DataField="user_id" HeaderText="user_id" SortExpression="user_id" /> 
       <asp:BoundField DataField="xdate" HeaderText="xdate" SortExpression="xdate" /> 
       <asp:TemplateField HeaderText="xcontent"> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("xcontent") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:TextBox ID="update" ClientIDMode="Static" TextMode="MultiLine" Text='<%# Eval("xcontent") %>' Height="100px" runat="server"></asp:TextBox> 
        </EditItemTemplate> 
        <InsertItemTemplate> 
         <asp:TextBox ID="insert" ClientIDMode="Static" TextMode="MultiLine" Text="" Height="100px" runat="server"></asp:TextBox> 
        </InsertItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" /> 
       <asp:CommandField ShowInsertButton="True" /> 
       <asp:CommandField ShowEditButton="True"/> 
      </Fields> 
     </asp:DetailsView> 


    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:samy_sarc %>" InsertCommand="INSERT INTO sarcusernote(user_id, xdate, xcontent) VALUES (@user_id, @xdate, @xcontent)" SelectCommand="SELECT sarcusernote.*,(select firstname from sarcuser where id=2) as name, id AS Expr1 FROM sarcusernote WHERE (id = @id)" UpdateCommand="UPDATE sarcusernote SET user_id = @user_id, xdate = @xdate, xcontent = @xcontent WHERE (id = @id)"> 
     <InsertParameters> 
      <asp:Parameter Name="user_id" /> 
      <asp:Parameter Name="xdate" /> 
      <asp:ControlParameter ControlID="insert" DefaultValue="%" Name="xcontent" PropertyName="Text" /> 
     </InsertParameters> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="GridView1" DefaultValue="0" Name="id" PropertyName="SelectedValue" /> 
     </SelectParameters> 
     <UpdateParameters> 

      <asp:Parameter Name="user_id" /> 
      <asp:Parameter Name="xdate" /> 
      <asp:ControlParameter ControlID="update" Name="xcontent" PropertyName="Text" Type="String" DefaultValue="%" /> 
      <asp:Parameter Name="id" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 

нет никакой ошибки в запросе ... потому что это отлично работает. Проблема заключается в том, когда я обновляю или вставляю какое-то значение:

Сведения об исключении: System.InvalidOperationException: Не удалось найти контрольное «обновление» в ControlParameter «xcontent».

Plz Помощь

ответ

2

Проблема заключается в том, что ваш ControlParameter не может найти элемент управления, который вложен внутри DetailsView (потому что он находится в другом ContentTemplate). Обычно есть два способа решить эту проблему.

Подход №1: Используйте символ «$» для доступа к вложенному элементу управления.

Вы можете обновить разметку на что-то вроде этого:

<asp:ControlParameter ControlID="DetailsView1$update" Name="xcontent" 
    PropertyName="Text" Type="String" DefaultValue="%" /> 

Использование {outerControlID}${innerControlID} позволит вашей ControlParameter найти вложенную управления.

Подход №2: добавьте параметр в код-сзади.

Вы можете программно добавить элемент управления в коллекцию UpdateParameters в своем коде. Это немного больше взлома, но я могу выставить пример, если он вам нужен.

+1

Спасибо за детали и решение первый подход работает со мной. –

+0

Тебе очень рады, @SamySammour. Я рад, что смог помочь =) – jadarnel27

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