سؤال

لذلك كنت أعاني من هذه المشكلة طوال اليوم.لدي 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

اتضح أنه كان لدينا استدعاء DataBind() في Page_Load للصفحة الرئيسية لملف aspx والذي ربما كان يتسبب في التخلص من حالة GridView عند كل تحميل للصفحة.

كملاحظة - معلمات التحديث لاستعلام LINQ ليست مطلوبة إلا إذا كنت تريد تعيينها بشكل افتراضي غير فارغ.

نصائح أخرى

أنت تفتقد أقسام <UpdateParameters> في DataSources.

LinqDataSource.UpdateParameters

SqlDataSource.UpdateParameters

هذه لقطة كاملة في الظلام لأنني لم أستخدم ASP على الإطلاق.

لقد كنت أتعلم للتو XAML وWPF، والذي يبدو مشابهًا جدًا لما نشرته أعلاه وأعلم أنه بالنسبة لبعض عناصر تحكم واجهة المستخدم، تحتاج إلى تحديد وضع الربط ثنائي الاتجاه للحصول على التحديثات في كلا الاتجاهين .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top