PDA

View Full Version : delete یک سطر دیتا گرید



narges313
دوشنبه 22 مرداد 1386, 14:52 عصر
سلام
من از دکمه delete در ستونی از دیتا گرید استفاده می کنم و با فشردن آن رکورد مربوطه از database حذف می شه اما از dataset و به تبع datagrid حذف نمی شه . در واقعه من یک خط کد که سطر مربوطه را از dataset حذف می کنه را می خوام. چندحالت مختلف را امتحان کردم جواب نداد.
در ضمن اگه کد VB.NET باشه خیلی ممنون می شوم.
با تشکر

shahab_ksh
دوشنبه 22 مرداد 1386, 15:33 عصر
بعد از حذف رکورد مورد نظر datagrid رو bind کردید؟

narges313
سه شنبه 23 مرداد 1386, 09:54 صبح
بعد از حذف رکورد مورد نظر datagrid رو bind کردید؟

بله من بعد از حذف حذف رکورد مورد نظر datagrid رو bind کردم .
اگه میشه لطف کنید سریع جواب بدین.
خیلی ممنون

nooshin_k
سه شنبه 23 مرداد 1386, 11:19 صبح
من هم همین مشکل را دارم و برای حذف از command استفاده کردم و از دیتا بیس حذف می کنه اما از grid نمیشه تابع bind آن را هم صدا زدم نمیشه فقط اگه صفحه را دوباره refresh کنم میشه

سار
سه شنبه 23 مرداد 1386, 11:54 صبح
گرید تو UpdatePanel هست؟

narges313
سه شنبه 23 مرداد 1386, 12:54 عصر
گرید تو UpdatePanel هست؟

نه خیر

لطفاً اگه میشه نحوه یافتن یک سطر خاص از Dataset را بگین.
ممنون

narges313
پنج شنبه 25 مرداد 1386, 12:50 عصر
پس چرا هیچ کس جواب نمی ده؟ فقط یک خط کد می خوام!!!

maxpayn2
پنج شنبه 25 مرداد 1386, 13:48 عصر
من یک گرید کامل برات مینویسم :






<asp:GridViewID="GridView1"runat="server"DataKeyNames="cart_id"DataSourceID="ObjectDataSource1"AllowPaging="True"AllowSorting="True"AutoGenerateColumns="False"OnRowUpdated="GridView1_RowUpdated"OnSelectedIndexChanged="GridView1_SelectedIndexChanged"OnRowDeleting="GridView1_RowDeleting"OnRowDeleted="GridView1_RowDeleted"OnRowCommand="GridView1_RowCommand"OnDataBound="GridView1_DataBound">

<Columns>

<asp:TemplateFieldHeaderText="è§ ê¥­یé">

<EditItemTemplate>

<asp:LabelID="lblUpdate"runat="server"Text='<%#Bind("product_id")%>'></asp:Label>

</EditItemTemplate>

<ItemTemplate>

<%#Eval("product_id")%>
</ItemTemplate>

<ItemStyleFont-Names="Tahoma"/>

<HeaderStyleFont-Names="Tahoma"/>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="ëںê ꥭیé">

<ItemTemplate>

<%#Eval("product_name")%>
</ItemTemplate>

<ItemStyleFont-Names="Tahoma"/>

<HeaderStyleFont-Names="Tahoma"/>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="çïê¢ یں¥§">

<ItemTemplate>

<%#Eval("unit_price")%>
</ItemTemplate>

<ItemStyleFont-Names="Tahoma"/>

<HeaderStyleFont-Names="Tahoma"/>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="یھë یں¥§">

<ItemTemplate>

<%#Eval("unit_weight")%>
</ItemTemplate>

<ItemStyleFont-Names="Tahoma"/>

<HeaderStyleFont-Names="Tahoma"/>

</asp:TemplateField>

<asp:TemplateFieldHeaderText="¢م§ں§">

<EditItemTemplate>

<asp:TextBoxID="txtUpdate"runat="server"Text='<%#Bind("qty")%>'></asp:TextBox>

</EditItemTemplate>

<ItemTemplate>

<%#Eval("qty")%>
</ItemTemplate>

<ItemStyleFont-Names="Tahoma"/>

<HeaderStyleFont-Names="Tahoma"/>

</asp:TemplateField>

<asp:CommandFieldShowEditButton="True"ButtonType="Button"UpdateText="£ ¢"CancelText="ںë­©ںه"

EditText="یï©ںï¬"HeaderText="یï©ںï¬">

<FooterStyleHorizontalAlign="Center"Font-Names="Tahoma"/>

<HeaderStyleHorizontalAlign="Center"Font-Names="Tahoma"/>

<ItemStyleHorizontalAlign="Center"Font-Names="Tahoma"/>

</asp:CommandField>
<asp:TemplateFieldHeaderText="¥¨ه">

<ItemTemplate>

<asp:ButtonID="btndelete"runat="server"Text="¥¨ه"CommandArgument='<%#Eval("product_id")%>'CausesValidation="false"OnClick="btndelete_Click"/>

</ItemTemplate>

<ItemStyleFont-Names="Tahoma"/>

<HeaderStyleFont-Names="Tahoma"/>

</asp:TemplateField>

</Columns>

<EmptyDataTemplate>

<table>

<tr>

<thstyle="font-family:Tahoma">&nbsp;è§ ê¥­یé&nbsp</th>

<thstyle="font-family:Tahoma">&nbsp;ëںê ꥭیé&nbsp</th>

<thstyle="font-family:Tahoma">&nbsp;çïê¢ یں¥§&nbsp</th>

<thstyle="font-family:Tahoma">&nbsp;یھë یں¥§&nbsp</th>

<thstyle="font-family:Tahoma">&nbsp;¢م§ں§&nbsp</th>

</tr>

<tr>

<td></td>

<td></td>

<td></td>

<td></td>

<td></td>

</tr>

</table>

</EmptyDataTemplate>

</asp:GridView>




اونجا هایی که فونت به هم ریخته فارسیه و اصلا مهم نیست ، حالا باید در قسمت کد در
GridView1_RowCommand اینجوری بنویسی :





Session["product_id"] = e.CommandArgument.ToString();
SqlConnection cnn = newSqlConnection();
cnn.ConnectionString = "connection string";
cnn.Open();
SqlCommand cm = newSqlCommand();


cm.CommandText = "DELETE FROM shoppingcart WHERE cart_id = '" + Session["cart_id"] + "' AND product_id = '" + Convert.ToInt32(Session["product_id"].ToString()) + "'";
cm.Connection = cnn;
cm.ExecuteNonQuery();
GridView1.DataBind();




میتونی به vb تبدیلش کنی

majid.nozad
پنج شنبه 25 مرداد 1386, 20:23 عصر
اینم یک گرید با امکانات محتلف تو vb2005



<asp:GridView ID="MyGrid" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="3" CssClass="grid" DataKeyNames="NewsId" Width="750px">
<FooterStyle BackColor="Black" ForeColor="#000066" />
<Columns>
<asp:ButtonField CommandName="Select" Visible="False" />
<asp:ImageField DataAlternateTextField="Active" DataImageUrlField="Active" DataImageUrlFormatString="../images/act{0}.png"
HeaderText="فعال">
<ItemStyle CssClass ="be_center" Width="30px" HorizontalAlign ="Center" />
<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Center" />
</asp:ImageField>
<asp:ImageField DataAlternateTextField="ispic" DataImageUrlField="ispic" DataImageUrlFormatString="../images/act{0}.png"
HeaderText="تصویر">
<ItemStyle CssClass ="be_center" Width="30px" />
<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Center" />
</asp:ImageField>

<asp:BoundField DataField="CreateDdate" HeaderText="تاریخ" >
<ItemStyle Width="70px" />
<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Right" />
</asp:BoundField>
<asp:BoundField DataField="newstitle" HeaderText="عنوان" >
<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Right" />
</asp:BoundField>
<asp:ButtonField HeaderText="حذف تصویر" ButtonType="Image" ImageUrl="../images/del.png" CommandName="Del_pic" >
<ItemStyle CssClass ="be_center" Width="60px" />

<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Center" />
</asp:ButtonField>
<asp:ButtonField ButtonType="Image" HeaderText="ویرایش" ImageUrl="../images/run.png" CommandName="Edit_Agahi">
<ItemStyle CssClass ="be_center" Width="60px" />
<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Center" />
</asp:ButtonField>
<asp:ButtonField HeaderText="حذف آگهی" ButtonType="Image" ImageUrl="../images/del.png" CommandName="Del_agahi" >
<ItemStyle CssClass ="be_center" Width="60px" />

<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Center" />
</asp:ButtonField>
<asp:ButtonField HeaderText="تغییر وضعیت" ButtonType="Image" ImageUrl="../images/change.png" CommandName="Change_stat" >
<ItemStyle CssClass ="be_center" Width="65px" />
<HeaderStyle CssClass="GridHeaderText" HorizontalAlign="Center" />
</asp:ButtonField>
</Columns>
<RowStyle CssClass="row_style" ForeColor="#000066" />
<EditRowStyle CssClass="Selected_row" />
<SelectedRowStyle CssClass="Selected_row" />
<PagerStyle BackColor="White" CssClass="FooterCell" ForeColor="#000066" Height="15px"
HorizontalAlign="Left" />
<HeaderStyle CssClass="HeadingCell " Font-Bold="False" />
<AlternatingRowStyle CssClass="Grid_Alternate" />
</asp:GridView>





اینم کد vb



Protected Sub MyGrid_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles MyGrid.RowCommand
' Dim row As GridViewRow = CType(CType(e.CommandSource, Control).NamingContainer, GridViewRow)

'ID = MyGrid.DataKeys(row.RowIndex).Value
Dim Dk As DataKey = CType(sender, GridView).DataKeys(e.CommandArgument)
ID = Dk.Value
Select Case e.CommandName

Case "Del_agahi"


db.Exec_Command("delete from news where NewsID=" & ID)


Case "Del_pic"



Dim pic(0) As Byte
Dim cmd As String = "Update News Set IsPic=0 , newsPic= @newsPic Where newsID= " & ID.ToString
db.exec_by_Picparam(cmd, pic)

Case "Change_stat"

Dim act As Boolean
Dim dt As DataSet
dt = db.GetDataset("select active from news where newsid=" & ID)

act = dt.Tables(0).Rows(0).Item(0)

If act Then
db.Exec_Command("update News set active=0 WHERE newsID = '" + ID.ToString + "'")
Else
db.Exec_Command("update News set active=1 WHERE newsID = '" + ID.ToString + "'")
End If

Case "Edit_Agahi"


Dim dt As DataSet
dt = db.GetDataset("select NewsId,Active,Ispic,CreatedDate,NewsTitle,Descript ion,topic from news where newsid=" & ID)

lbl_temp.Text = dt.Tables(0).Rows(0).Item("NewsId").ToString()
txtTitle.Text = dt.Tables(0).Rows(0).Item("NewsTitle").ToString()
Dim strbTopic As StringBuilder = New StringBuilder(dt.Tables(0).Rows(0).Item("topic").ToString())
strbTopic.Replace("<br>", vbCrLf)
txtTopic.Text = strbTopic.ToString()
Dim strbDes As StringBuilder = New StringBuilder(dt.Tables(0).Rows(0).Item("Description").ToString())
strbDes.Replace("<br>", vbCrLf)
txtDiscription.Text = strbDes.ToString()
txtCreatedDate.Text = dt.Tables(0).Rows(0).Item("CreatedDate").ToString()
chkActive.Checked = dt.Tables(0).Rows(0).Item("Active").ToString()

Btn_Edit.Enabled = True
Btn_Insert.Enabled = False
Btn_New.Enabled = True


End Select

BindData()

End Sub

majid.nozad
پنج شنبه 25 مرداد 1386, 20:35 عصر
البته فکر کنم اگه bind میکنی و سطر حذف شده دوباره نمایش داده میشه ، باید قبل bind , dataset رو دوباره تعریف کنی :


Dim ds As DataSet
ds = db.GetDataset("SELECT NewsId,Active,Ispic,CreatedDate,NewsTitle FROM News Order By Eng DESC,CreatedDate")
MyGrid.DataSource = ds
MyGrid.DataBind()