Jeff Franken Ответов: 1

Linq to SQL gridview edit функция не работает


У меня есть gridview с полем команды редактирования. Он привязан к таблице Asset_Portfolio. Работать отлично. Я нажимаю на EDIT, он дает мне обновить и отменить ссылки. Я ввожу несколько открытых полей и нажимаю кнопку Обновить. Он обновляется.

Теперь я добавляю пару выпадающих списков на панели за пределами gridview. Я заполняю их, и когда пользователь нажимает на строку, он отправляет эту строку в gridview, где. Эта часть отлично работает. Однако выпадающие списки каким-то образом мешают Gridview разрешить редактирование. Я нажимаю на кнопку Изменить, появляются текстовые поля, но он не позволяет мне вводить какие-либо данные.
Я немного поиграл с этим и обнаружил, что до того, как выпадающие списки будут привязаны, редактирование работает правильно. После того, как команда привязки выполняется, GridView будет нарушена.

Может кто-то пожалуйста, помогите мне? Без понятия.

Что я уже пробовал:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True"  PageSize="37" AllowSorting="True"
      AlternatingRowStyle-BackColor="#99CCFF"
      DataSourceID="dsPortfolio" AutoGenerateColumns="False"
      DataKeyNames="Asset_Id" OnRowDataBound="OnRowDataBound" OnRowUpdating="OnRowUpdating"
      EnableUpdate="true"
      Height="100%"
      Width="100%">
      <AlternatingRowStyle BackColor="#cccccc" />


      <Columns>
                     <asp:CommandField ShowEditButton="True"

          ButtonType="Link" EditText="EDIT"
          UpdateText="UPDATE"
          CancelText="CANCEL">
      </asp:CommandField>

          <asp:BoundField DataField="Asset_Id" HeaderText="ID" ReadOnly="True" SortExpression="Asset_Id" ItemStyle-Width="10px"/>
           <asp:BoundField DataField="As_Of_Date" HeaderText="AsOf" ReadOnly="True" SortExpression="As_Of_Date" ItemStyle-Width="200px"/>
          <asp:BoundField DataField="Loan_Number_Display" HeaderText="Loan #" ReadOnly="True" SortExpression="Loan_Number_Display" ItemStyle-Width="100px"/>
          <asp:BoundField DataField="Entity_Name" HeaderText="Name" ReadOnly="True" SortExpression="Entity_Name" ItemStyle-Width="200px"/>



SqlDataAdapter da2 = new SqlDataAdapter("select distinct loan_number_display from libor.Droploan order by loan_number_display", Conn3);
  DataSet ds2 = new DataSet();
  da2.Fill(ds2);
  if (ddlLoan != null)
  {
      ddlLoan.DataSource = ds2;
      ddlLoan.DataTextField = "Loan_number_display";
      ddlLoan.DataValueField = "Loan_number_display";
      ddlLoan.Items.Insert(0, new ListItem("Select"));
      ddlLoan.DataBind();

  }
  da2.Dispose();
  ds2.Dispose();

ZurdoDev

Я не знаю, как помочь вам, не видя, что происходит.

1 Ответов

Рейтинг:
2

Gerry Schmitz

Нет смысла использовать набор данных в качестве источника привязки, а затем "утилизировать" его.

if (ddlLoan != null)
  {
      ddlLoan.DataSource = ds2;
      ddlLoan.DataTextField = "Loan_number_display";
      ddlLoan.DataValueField = "Loan_number_display";
      ddlLoan.Items.Insert(0, new ListItem("Select"));
      ddlLoan.DataBind();

  }
  da2.Dispose();
  ds2.Dispose();


Richard Deeming

Это и есть ASP.NET; как только DataBind метод возвращает, что не будет никакой связи между связанными элементами и DataSet- так что избавление от него не повредит.

Что для меня не имеет смысла, так это загрузка данных снаружи из if блокируйте, когда он только используется внутри этот блок.