PDA

View Full Version : checkboxfield



ستاره شرق
دوشنبه 26 شهریور 1386, 12:43 عصر
سلام، خسته نباشید
یک ستون checkboxfield به gridview اضافه کردم.
میخوام هر کدام از ردیف ها رو که تیک می زنم توی پایگاه داده ، با توجه به datakeys مربوط به اون ردیف ، تغییراتی ایجاد بشه .
کد مربوطه رو کجا باید بنویسم.
متشکرم

abadanboy
دوشنبه 26 شهریور 1386, 13:20 عصر
c# CODE:


private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
if (e.CommandName.Equals("cmd"))
{
ViewState["newsId"] = e.CommandArgument.ToString();
cmd.CommandText = " Select * from TblNews Where NewsID='" + ViewState["newsId"] + "' ";
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
//this.dGroup.SelectedValue = dr.GetValue(1).ToString();
TxtTitle.Text = dr.GetValue(2).ToString().Trim();
TxtNews.Text = dr.GetValue(3).ToString().Trim();
TxtSummer.Text = dr.GetValue(4).ToString().Trim();
TxtSource.Text = dr.GetValue(6).ToString().Trim();
h1.Value = dr.GetValue(7).ToString().Trim();
string bit = dr.GetBoolean(12).ToString();
if (bit == "True")
ChActive.Checked = true;
}
cn.Close();
BtnSend.Text = "ویرایش ";
//Label10.Text = "";
}
}
catch (Exception ff)
{
LblError.Text = ff.Message;
}
}

ASP CODE:

<asp:datagrid id="DataGrid1" runat="server" Font-Names="Tahoma" Font-Size="X-Small" HorizontalAlign="Center" Width="290px" BackColor="White" BorderColor="#CCCCCC" CellPadding="3" BorderWidth="1px" BorderStyle="None" AutoGenerateColumns="False" AllowPaging="True">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999"></SelectedItemStyle>
<ItemStyle HorizontalAlign="Right" ForeColor="#000066" VerticalAlign="Middle"></ItemStyle>
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="White" VerticalAlign="Middle"
BackColor="#006699"></HeaderStyle>
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="NewsTitle" HeaderText="عنوان خبر">
<HeaderStyle Width="200px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="ویرایش">
<HeaderStyle Width="40px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<asp:ImageButton id=ImageButton1 runat="server" ImageUrl="..\images\Edit.gif" CommandName="cmd" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.NewsId") %>'>
</asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="حذف">
<HeaderStyle Width="30px"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" Font-Underline="True" HorizontalAlign="Left" ForeColor="#000066"
BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:datagrid>

این با IMAG BUTTON تو با CHECKBOX بنویس

ستاره شرق
سه شنبه 27 شهریور 1386, 08:25 صبح
از راهنماییتون ممنونم.

من با gridview میخوام این کار رو انجام بدم. چطوری میتونم؟

ستاره شرق
چهارشنبه 28 شهریور 1386, 07:51 صبح
خواهش می کنم جواب منو بدید

abadanboy
چهارشنبه 28 شهریور 1386, 08:52 صبح
با سلام
ببین گرید ویو فکر کنم پیشرفته data grid هست یا برعکس به هر خال یه کار می کنن
شما برای اینکه بتونید به ایتم های دیتا گرید دسترسی ذاشته باشید با ید اون رو تو ایتم کامند بنویسید مثل بالا
مثلا در با لا من برای image button یه commandname , command argument تعریف کردم
که شامل نام و یه فیلد یکتا از پایگاه دادمونه البته نام دلخواه است از پایگاه نمییاتا
خوب حالا تو کد گفتم اگه نام cmd بود بیا ایدی او که روش کلیک شده رو بزار تو viewstate و ادامه مراحل
اگه با 2005 کار میکنی باید تو دیتا گریدت اینو اضافه کنی OnItemCommand=DataGrid1_ItemCommand

موفق باشی