PDA

View Full Version : سوال: مشکل با حذف رکورد در کامپوننت telerik rad grid



khz-web1
دوشنبه 02 مرداد 1391, 22:45 عصر
سلام
من در ویژوال استدیو 2010 کامپوننت های telerik رو نصب کردم ، و می خوام از روشی که در سایت زیر گفته شده رکورد حذف کنم ...


http://demos.telerik.com/aspnet-ajax/grid/examples/client/clientdelete/defaultvb.aspx


مشکل اینجاست که رکورد سمت کلاینت حذف شده نشون داده میشه ولی در data base حذف نمیشه! و بعد از یک refresh دوباره ظاهر میشه!!!!
کدی که من استفاده می کنم به شکل زیر هستش


<center> <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<table class="style1" width="750px">
<tr>
<td style="text-align: center">
<center>
<telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" GridLines="None"
DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" Font-Names="Tahoma" Skin="WebBlue"
AllowAutomaticDeletes="True" Width="629px">
<ClientSettings AllowColumnsReorder="True">
<Selecting AllowRowSelect="True" />
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
<MasterTableView datakeynames="cnt_id"
datasourceid="SqlDataSource1">
<NoRecordsTemplate>
رکوردی یافت نشد</NoRecordsTemplate>
<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>

<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
</RowIndicatorColumn>

<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>

<Columns>
<telerik:GridBoundColumn DataField="cnt_id" DataType="System.Int64"
FilterControlAltText="Filter cnt_id column" HeaderText="cnt_id" ReadOnly="True"
SortExpression="cnt_id" UniqueName="cnt_id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_name"
FilterControlAltText="Filter cnt_name column" HeaderText="cnt_name"
SortExpression="cnt_name" UniqueName="cnt_name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_email"
FilterControlAltText="Filter cnt_email column" HeaderText="cnt_email"
SortExpression="cnt_email" UniqueName="cnt_email">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_company"
FilterControlAltText="Filter cnt_company column" HeaderText="cnt_company"
SortExpression="cnt_company" UniqueName="cnt_company">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_Country"
FilterControlAltText="Filter cnt_Country column" HeaderText="cnt_Country"
SortExpression="cnt_Country" UniqueName="cnt_Country">
</telerik:GridBoundColumn>

<telerik:GridBoundColumn DataField="cnt_phone"
FilterControlAltText="Filter cnt_phone column" HeaderText="cnt_phone"
SortExpression="cnt_phone" UniqueName="cnt_phone">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_fax"
FilterControlAltText="Filter cnt_fax column" HeaderText="cnt_fax"
SortExpression="cnt_fax" UniqueName="cnt_fax">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_message"
FilterControlAltText="Filter cnt_message column" HeaderText="cnt_message"
SortExpression="cnt_message" UniqueName="cnt_message">
</telerik:GridBoundColumn>


<telerik:GridClientDeleteColumn ConfirmTextFields="cnt_id" ConfirmTextFormatString="Are you sure you want to delete details for order {0}?"
HeaderStyle-Width="35px" ButtonType="ImageButton" ImageUrl="images\Delete.gif" />


</Columns>

<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
</MasterTableView>

<FilterMenu EnableImageSprites="False"></FilterMenu>

<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
</telerik:RadGrid></center>
</td>
</tr>
<tr>
<td class="style2">
</td>
</tr>
</table>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:petroadConnectionString %>"

SelectCommand="SELECT * FROM [cnt_Table]"
DeleteCommand="DELETE FROM [cnt_Table] WHERE [cnt_id] = @original_cnt_id AND (([cnt_name] = @original_cnt_name) OR ([cnt_name] IS NULL AND @original_cnt_name IS NULL)) AND (([cnt_email] = @original_cnt_email) OR ([cnt_email] IS NULL AND @original_cnt_email IS NULL)) AND (([cnt_company] = @original_cnt_company) OR ([cnt_company] IS NULL AND @original_cnt_company IS NULL)) AND (([cnt_Country] = @original_cnt_Country) OR ([cnt_Country] IS NULL AND @original_cnt_Country IS NULL)) AND (([cnt_phone] = @original_cnt_phone) OR ([cnt_phone] IS NULL AND @original_cnt_phone IS NULL)) AND (([cnt_fax] = @original_cnt_fax) OR ([cnt_fax] IS NULL AND @original_cnt_fax IS NULL)) AND (([cnt_message] = @original_cnt_message) OR ([cnt_message] IS NULL AND @original_cnt_message IS NULL))"
InsertCommand="INSERT INTO [cnt_Table] ([cnt_id], [cnt_name], [cnt_email], [cnt_company], [cnt_Country], [cnt_phone], [cnt_fax], [cnt_message]) VALUES (@cnt_id, @cnt_name, @cnt_email, @cnt_company, @cnt_Country, @cnt_phone, @cnt_fax, @cnt_message)"

UpdateCommand="UPDATE [cnt_Table] SET [cnt_name] = @cnt_name, [cnt_email] = @cnt_email, [cnt_company] = @cnt_company, [cnt_Country] = @cnt_Country, [cnt_phone] = @cnt_phone, [cnt_fax] = @cnt_fax, [cnt_message] = @cnt_message WHERE [cnt_id] = @original_cnt_id AND (([cnt_name] = @original_cnt_name) OR ([cnt_name] IS NULL AND @original_cnt_name IS NULL)) AND (([cnt_email] = @original_cnt_email) OR ([cnt_email] IS NULL AND @original_cnt_email IS NULL)) AND (([cnt_company] = @original_cnt_company) OR ([cnt_company] IS NULL AND @original_cnt_company IS NULL)) AND (([cnt_Country] = @original_cnt_Country) OR ([cnt_Country] IS NULL AND @original_cnt_Country IS NULL)) AND (([cnt_phone] = @original_cnt_phone) OR ([cnt_phone] IS NULL AND @original_cnt_phone IS NULL)) AND (([cnt_fax] = @original_cnt_fax) OR ([cnt_fax] IS NULL AND @original_cnt_fax IS NULL)) AND (([cnt_message] = @original_cnt_message) OR ([cnt_message] IS NULL AND @original_cnt_message IS NULL))"
ConflictDetection="CompareAllValues"
OldValuesParameterFormatString="original_{0}">
<DeleteParameters>
<asp:Parameter Name="original_cnt_id" Type="Int64" />
<asp:Parameter Name="original_cnt_name" Type="String" />
<asp:Parameter Name="original_cnt_email" Type="String" />
<asp:Parameter Name="original_cnt_company" Type="String" />
<asp:Parameter Name="original_cnt_Country" Type="String" />
<asp:Parameter Name="original_cnt_phone" Type="String" />
<asp:Parameter Name="original_cnt_fax" Type="String" />
<asp:Parameter Name="original_cnt_message" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="cnt_id" Type="Int64" />
<asp:Parameter Name="cnt_name" Type="String" />
<asp:Parameter Name="cnt_email" Type="String" />
<asp:Parameter Name="cnt_company" Type="String" />
<asp:Parameter Name="cnt_Country" Type="String" />
<asp:Parameter Name="cnt_phone" Type="String" />
<asp:Parameter Name="cnt_fax" Type="String" />
<asp:Parameter Name="cnt_message" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="cnt_name" Type="String" />
<asp:Parameter Name="cnt_email" Type="String" />
<asp:Parameter Name="cnt_company" Type="String" />
<asp:Parameter Name="cnt_Country" Type="String" />
<asp:Parameter Name="cnt_phone" Type="String" />
<asp:Parameter Name="cnt_fax" Type="String" />
<asp:Parameter Name="cnt_message" Type="String" />
<asp:Parameter Name="original_cnt_id" Type="Int64" />
<asp:Parameter Name="original_cnt_name" Type="String" />
<asp:Parameter Name="original_cnt_email" Type="String" />
<asp:Parameter Name="original_cnt_company" Type="String" />
<asp:Parameter Name="original_cnt_Country" Type="String" />
<asp:Parameter Name="original_cnt_phone" Type="String" />
<asp:Parameter Name="original_cnt_fax" Type="String" />
<asp:Parameter Name="original_cnt_message" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
document.forms[0].onsubmit = function () {
var hasDeletedItems = $find("<%= RadGrid1.ClientID %>")._deletedItems.length > 0;
if (hasDeletedItems) {
if (!confirm("There are client-side deletes! Would you like to save these changes to the server?")) {
$find("<%= RadGrid1.ClientID %>")._deletedItems = [];
$find("<%= RadGrid1.ClientID %>").updateClientState();
}
}
}
</script>
</telerik:RadCodeBlock>
<telerik:RadAjaxManager runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager></center>


باتشکر

Vahid Rezaei
چهارشنبه 05 مهر 1391, 09:44 صبح
عزیز این طبیعی هست که وقتی یک چیز سمت کلاینت اضافه می شه سمت سرور اضافه نشه !!!

شما باید بری سمت سرور برای ذخیره تو دیتابیس ...
و اگر مشکلت رفرش صفحه هست که می خوای بیای سمت کلاینت ، بنظر من گرید را بزار توی ایجکس پنل و سمت سرور اضافه کن .