문제

그래서 나는 하루 종일 이 문제로 고민하고 있습니다.내 모델을 가리키는 LinqDataSource와 이를 사용하는 GridView가 있습니다.GridView에서 업데이트를 시도하면 기본 데이터 원본이 업데이트되지 않습니다.LinqDataSource와 관련이 있을 수 있다고 생각하여 SqlDataSource를 추가했는데 같은 일이 발생했습니다.aspx는 다음과 같습니다(코드 숨김 페이지가 비어 있음).

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
      ConnectionString="Data Source=devsql32;Initial Catalog=Steam;Persist Security Info=True;" 
      ProviderName="System.Data.SqlClient" 
      SelectCommand="SELECT [LangID], [Code], [Name] FROM [Languages]" UpdateCommand="UPDATE [Languages] SET [Code]=@Code WHERE [LangID]=@LangId">
  </asp:SqlDataSource>
  <asp:GridView ID="_languageGridView" runat="server" AllowPaging="True" 
      AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="LangId" 
      DataSourceID="SqlDataSource1">
      <Columns>
          <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
          <asp:BoundField DataField="LangId" HeaderText="Id" ReadOnly="True" />
          <asp:BoundField DataField="Code" HeaderText="Code" />
          <asp:BoundField DataField="Name" HeaderText="Name" />
      </Columns>
  </asp:GridView>
  <asp:LinqDataSource ID="_languageDataSource" ContextTypeName="GeneseeSurvey.SteamDatabaseDataContext" runat="server" TableName="Languages" EnableInsert="True" EnableUpdate="true" EnableDelete="true">
 </asp:LinqDataSource>

도대체 내가 여기서 무엇을 놓치고 있는 걸까?이 문제는 나를 미치게 만든다.

도움이 되었습니까?

해결책 2

aspx 파일 마스터 페이지의 Page_Load에 DataBind() 호출이 있어 모든 페이지 로드 시 GridView 상태가 삭제되는 것으로 나타났습니다.

참고 사항 - Null이 아닌 기본값을 설정하지 않는 한 LINQ 쿼리에 대한 업데이트 매개 변수는 필요하지 않습니다.

다른 팁

DataSource의 <UpdateParameters> 섹션이 누락되었습니다.

LinqDataSource.UpdateParameters

SqlDataSource.UpdateParameters

ASP를 전혀 사용하지 않았기 때문에 이것은 어둠 속에서의 전체 샷입니다.

저는 방금 XAML과 WPF를 배웠는데 위에 게시한 내용과 매우 유사한 것으로 보이며 일부 UI 컨트롤의 경우 양방향으로 업데이트를 받으려면 바인딩 모드를 양방향으로 지정해야 한다는 것을 알고 있습니다. .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top