PDA

View Full Version : سوال: چند سوال در خصوص GridView



saeed razaee
سه شنبه 18 فروردین 1388, 13:17 عصر
با سلام
لطفا سوالهاي 8 و 9 و 10 را مشاهده كنيد و در صورت امكان راهنمائي فرمائيد.با تشكر
نمونه فرم پيوست مي باشد

اتصال به پايگاه داده SQL

1- استفاده از فضاي نام



using System.Data.SqlClient;

نام پايگاه داده Sample1
نام جدول در پايگاه داده Table1
نام فيلدها در جدول ، دو فيلد با نام ID,Name
استفاده از grid view جهت نمايش اطلاعات با نام grdTable1
استفاده از دو textbox جهت درج اطلاعات با نام هاي txtID و txtName
استفاده از سه Button جهت حذف ، ويرايش و ذخيره اطلاعات با نامهاي Del و Edit و Insert
استفاده از يك Button جهت برگشت به صفحه اصلي با نام Button1

2-كدهاي اتصال به پايگاه داده


namespace simpledbweb
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Fill();
}
public void Fill()
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlDataAdapter ObjDataAdapter = new SqlDataAdapter("Select * From Table1", ObjConnection);
DataSet ObjDataSet = new DataSet();
ObjDataAdapter.Fill(ObjDataSet, "Table1");
grdTable1.DataSource = ObjDataSet;
grdTable1.DataBind();
ObjDataAdapter = null;
ObjConnection = null;

}

3-كدهائي براي اضافه كردن اطلاعات به جدولي در پايگاه داده


protected void Insert_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Insert into Table1 (ID,Name) Values(@ID,@Name)", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", txtID.Text);
ObjCommand.Parameters.AddWithValue("@Name", txtName.Text);
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Fill();

}


4-كدهائي براي حذف اطلاعاتي از جدولي در پايگاه داده


protected void Del_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Delete From Table1 Where ID=@ID;", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", txtID.Text);
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Fill();



}
5-كدهائي جهت ويرايش اطلاعات در جدولي در پايگاه داده


protected void Edit_Click(object sender, EventArgs e)
{
SqlConnection ObjConnection = new SqlConnection("Data Source=Localhost;Initial Catalog=Sample1;Integrated Security=True");
SqlCommand ObjCommand = new SqlCommand("Update Table1 Set Name=@Name Where ID=@ID;", ObjConnection);
ObjCommand.Parameters.AddWithValue("@ID", txtID.Text);
ObjCommand.Parameters.AddWithValue("@Name", txtName.Text);
ObjConnection.Open();
ObjCommand.ExecuteNonQuery();
txtID.Text = null;
txtName.Text = null;
ObjConnection.Close();
Fill();

}
6- خاصيت Page size ، Grid viewرو به 5 تغيير داده ام که در هر صفحه از grid view، 5رکورد نمايش داده شود و براي اينكه با كليك بر روي شماره صفحه در پايين grid view بتوانم بين صفحات حركت كنم در رويدارد PageIndexChanging دابل كليك كرده ام و كد زير را نوشته ام .

protected void grdTable1_PageIndexChanging1(object sender, GridViewPageEventArgs e)
{
grdTable1.PageIndex = e.NewPageIndex;
grdTable1.DataBind();

}






7-فارسي كردن هدر GridView
براي فارسي كردن هدر ستونها در GridView به صورت زير عمل كردم و قبل از انتخاب جدول فيلدهاي آن را نام بردم و عنوان فارسي هر فيلد را جلوي آن در كروشه نوشتم.


SqlDataAdapter ObjDataAdapter = new SqlDataAdapter("Select ID [كد], Name [نام]From Table1", ObjConnection);

8-انتخاب يك سطر از GridView و نمايش اطلاعات سطر انتخابي در تكس باكسهاي بالا


9-نمايش يك باتن براي انتخاب سطر در GridView


10-پنهان بودن باتن هاي حذف و ويرايش در شرايط عادي و نمايش آنها بعد از انتخاب يك سطر از GridView و همچنين باتن كنسل

saeed razaee
شنبه 22 فروردین 1388, 07:18 صبح
با سلام
دوستان لطفا راهنمائي نمائيد.با تشكر فراوان

raziee
شنبه 22 فروردین 1388, 11:43 صبح
سوال 8:
برای انتخاب کردن یک سطر ابتدا باید یک ستون اضافه کرد:


<Columns>
<asp:CommandField SelectText="انتخاب " ShowSelectButton="True">
<ControlStyle CssClass="button" />
</asp:CommandField>
</Columns>


حالا در رویداد SelectedIndexChanged :
TextBox1.Text = GridView.SelectedRow.Cells[1].Text.ToString();
به صورت کد بالا میتونی ستونی که سطر آن انتخاب شده را برگردانی.
اگه دو تا ستون رو میخوای مثلا مینویسی:


TextBox1.Text = GridView.SelectedRow.Cells[0].Text.ToString();
TextBox2.Text = GridView.SelectedRow.Cells[1].Text.ToString();

saeed razaee
یک شنبه 23 فروردین 1388, 12:29 عصر
سلام من كدهاي زير را نتوانستم استفاده كنم
هر جا اضافه مي كنم خطا مي گيرد

<Columns>
<asp:CommandFieldSelectText="انتخاب "ShowSelectButton="True">
<ControlStyleCssClass="button"/>
</asp:CommandField>
</Columns>


براي اين كار آمدم در قسمت مشخصات GrideView و قسمت AutoGenerateSelectButton:True قرار دادم و باتن select را ساختم اما نام آن به صورت لاتين باقي مانده ، چطور بايد فارسي شود نمي دانم ؟ و در قسمت SelectedIndexChanged نيز همانند شما كدهاي خود را اضافه كردم و برنامه جواب مي دهد .
حال اگر بخواهم يك باتن داشته باشم كه عمل cancel را انجام دهد چه كار بايد بكنم ؟ آيا اگر يك باتن بسازم كه تكس باكسها را خالي كند اين راه درستي است يا خير؟