PDA

View Full Version : مبتدی: سوال در مورد حذف مطلب



zidanerfan
جمعه 17 شهریور 1391, 15:28 عصر
سلام دوستان
واسه حذف کردن مطلب باید Row سطر رو به یه تکست باکس بدم می خوام وقتی رو کلید Delet کلیک کردم Text Box مقدار Row سطر مورد نظر رو بگیره اینم عکس کسی میتونه راهنمایی کنه :قلب:
92505

mehrzad_ali
جمعه 17 شهریور 1391, 16:21 عصر
این چه کاریه که میخوای بریزی توی تکست باکس ؟
یه TemplateField بگیر و اینو بنویس توش


<asp:TemplateField HeaderText="حذف">
<ItemTemplate>
<asp:Button ID="Button2" runat="server" CommandArgument='<%# Eval("id") %>' CommandName="delete"
Text="حذف" Width="55px" OnClientClick="return confirm('?آیا مایل به حذف هستید');" />
</ItemTemplate>
</asp:TemplateField>

zidanerfan
جمعه 17 شهریور 1391, 16:55 عصر
ارور داد

Server Error in '/' Application.

Deleting is not supported by data source 'SqlDataSource1' unless DeleteCommand is specified.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NotSupportedException: Deleting is not supported by data source 'SqlDataSource1' unless DeleteCommand is specified.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:

[NotSupportedException: Deleting is not supported by data source 'SqlDataSource1' unless DeleteCommand is specified.] System.Web.UI.WebControls.SqlDataSourceView.Execut eDelete(IDictionary keys, IDictionary oldValues) +1967591 System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +92 System.Web.UI.WebControls.GridView.HandleDelete(Gr idViewRow row, Int32 rowIndex) +946 System.Web.UI.WebControls.GridView.HandleEvent(Eve ntArgs e, Boolean causesValidation, String validationGroup) +952 System.Web.UI.WebControls.GridView.OnBubbleEvent(O bject source, EventArgs e) +95 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.GridViewRow.OnBubbleEven t(Object source, EventArgs e) +121 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.Button.OnCommand(Command EventArgs e) +125 System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument) +167 System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1

zidanerfan
جمعه 17 شهریور 1391, 17:10 عصر
دوست عزیز می خوام وقتی رو کلید حذف کلیک کردم (مثلاً کلید ستون 2 هستش ) مقدار نکست باکس که تو بیرون گرید دارم 2 بشه می دونی چرا چون واسه حذف کردن از کد زیر استفاده می کنم

var db = new LINQDataContext();
MyTable_Kurdsoft t1 = db.MyTable_Kurdsofts.First(p => p.Title.StartsWith(TextBox1.Text));
db.MyTable_Kurdsofts.DeleteOnSubmit(t1);
db.SubmitChanges();
GridView1.DataBind();

zidanerfan
جمعه 17 شهریور 1391, 18:20 عصر
دوستان کسی نیست جواب سوال مارو بده

mehrdad85
جمعه 17 شهریور 1391, 19:00 عصر
سلام

دوست عزیز میتونی از selected row استفاده کنی
البته نمیدونم که منظورتو درست متوجه شدم یا نه
اما با استفاده از این میتونی ایدی سطری را که انتخاب کردی بدست بیاری و بریزیش تو text box و بعش هر کاری که خواستی با اون سطر بکنی حالا یا پاکش کنی یا ویرایشش کنی یا هر چیز دیگه


موفق باشی

zidanerfan
جمعه 17 شهریور 1391, 19:16 عصر
سلام مرسی که جواب دادای مشیه یه کد بزاری ممنون میشم داداش :قلب:

fakhravari
جمعه 17 شهریور 1391, 19:55 عصر
به این ترتیب
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display."
EnableModelValidation="True"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True"
SortExpression="ID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
</Columns>
</asp:GridView>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
TextBox1.Text = GridView1.SelectedDataKey.Value.ToString();
}

zidanerfan
شنبه 18 شهریور 1391, 00:38 صبح
سلام دوست من
مرسی که کمکم کردی این روشی که شما فرمودی یه Select حتماً لازم داره مثلاً باید رو کلید سلکت کلیک کنی من میخوام وقتی رو Button حذف کلیک کردم TextBox مقدار رو بگیره :قلب: بازم مرسی که جواب دادی

fakhravari
شنبه 18 شهریور 1391, 00:42 صبح
شما در جایی که مقدار ID میگیرید یک تابع حذف رکورد فراخونی کنید .
اگر میخواهید باتن بزارید باید گرید تمپلت کنید.

zidanerfan
شنبه 18 شهریور 1391, 01:07 صبح
تمپلت کردم تو حذف رکورد مشکل پیدا شده مثلا میخوام از بین 3 تا سطری که دارم مثلا Row=3 حذف بشه ولی نمیشه Row=1 رو حذف میکنه نمی دونم چیکارش کنم اگه میشه یه کد واسه حذف مطلب بزارید (از LINQ استفاده کردم ) بازم مرسی که ج دادی

zidanerfan
شنبه 18 شهریور 1391, 01:11 صبح
دادا من تو app از این طریق یه رکورد رو حذف می کردم

if (dataGridView1.RowCount == 0)
{
//count
double a = Int32.Parse(dataGridView1.RowCount.ToString());
lblcount.Text = a.ToString();

MessageBox.Show("Hich Recordi Baray Hazf Kardan Vojod Nadarad!","Delete",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;

}

if (MessageBox.Show("Aya Mikhahid Record Morede Nazar Hazf Shawad?", "Delete", MessageBoxButtons.YesNo,
MessageBoxIcon.Question)== DialogResult.Yes)
{
//count
double a = Int32.Parse(dataGridView1.RowCount.ToString());
lblcount.Text = a.ToString();

var db = new LINQDataContext();
db.pDelete(Convert.ToInt32(dataGridView1.CurrentRo w.Cells["Row"].Value));
dataGridView1.DataSource = db.MyTables;
}
ولی تو وب فرق میکنه مبتدیم تازه کار با وب رو شروع کردم :قلب:

fakhravari
شنبه 18 شهریور 1391, 12:33 عصر
کسایی که میخواهند شروع کنند باید سمپلای زیادی ببینن
http://barnamenevis.org/showthread.php?319398