PDA

View Full Version : مشکل با Update کردن Gridview



A.S.Roma
جمعه 10 مهر 1388, 00:23 صبح
با سلام

من یک GridView دارم که دیتای خودش رو از یک ObjectDataSource میگیره .

یک متد برای Update نوشتم که دو مقدار id , price یک نمونه رو میگیره و اونو آپدیت می کنه .
وقتی در گریدویو دکمه "ویرایش " تعریف می کنم .

با این پیغام روبه رو میشم :



ObjectDataSource 'myDataSource' could not find a non-generic method 'UpdatePrice' that has parameters: original_Id, price.


مشخصات Gridview :

<asp:GridView ID="myGrid" runat="server"
AutoGenerateColumns="False"
DataSourceID="myDataSource"
DataKeyNames="Id">مشخصات ObjectDataSource :


<asp:ObjectDataSource ID="myDataSource"
ConflictDetection="CompareAllValues"
TypeName="Shop.BLL.StuffBLL" runat="server"
DeleteMethod="DeleteById" InsertMethod="AddStuff"
OldValuesParameterFormatString="original_{0}"
SelectMethod="GetStuffByCategoryId" UpdateMethod="UpdatePrice">
<UpdateParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="price" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
اینم متد UpdatePrice :



[System.ComponentModel.DataObjectMethod(System.Comp onentModel.DataObjectMethodType.Update,true)]
protected void UpdatePrice(int original_id,int price)
{
... {
مشکل کار کجاست !؟:متفکر:

البته دقیقا" کار خاصیت DataKeyNames رو نمی دونم و حدس می زنم مشکل از اون باشه !؟

از دوستان اگر کسی می تواند کمک کند یا کار اون Property را بیان کند ممنون میشم !

A.S.Roma
جمعه 10 مهر 1388, 22:46 عصر
کسی تا به حال به این مشکل برنخورده !؟:متعجب::متفکر:

A.S.Roma
یک شنبه 12 مهر 1388, 13:46 عصر
خودم مشکل رو حل کردم .
DataKeyNames : برابر مقدار ستونی از Gridview که Primary Key جدول هست.
OldvalueformatString رو کلا" برداشتم.
پارامتر اول آپدیت و همچنین Delete باید حتما" برابر PrimaryKey جدول باشه .
به تعداد ستون های گریدویو باید برای عمل آپدیت Parameter پاس کرد.