PDA

View Full Version : ویرایش در گرید ویو



elina
چهارشنبه 15 شهریور 1391, 15:42 عصر
سلام دوستان
من یه گرید ویو دارم که توش به عنوان مثال یه فیلد نام دارم . روی این row یه کلید ویرایش گذاشتم ، هم تابع row editing و هم row updating رو هم براش نوشتم .
موقعی که کلید ویرایش رو میزنم به row editing میره و همه فیلد هام از حالت لیبل به تکست باکس تبدیل میشه ، ولی وقتی نام رو تغییر میدم ، تو تابع row updating همون مقدار نام قبلی رو نشون میده .
اصلا نمیدونم چرا اینجوری میشه ، کسی هست کمکی بکنه ؟

meisam12
چهارشنبه 15 شهریور 1391, 15:49 عصر
می شه سورستان را بذارید تا ببینیم چگونه نوشتید(هم Html , هم کد)

سلام دوستان
من یه گرید ویو دارم که توش به عنوان مثال یه فیلد نام دارم . روی این row یه کلید ویرایش گذاشتم ، هم تابع row editing و هم row updating رو هم براش نوشتم .
موقعی که کلید ویرایش رو میزنم به row editing میره و همه فیلد هام از حالت لیبل به تکست باکس تبدیل میشه ، ولی وقتی نام رو تغییر میدم ، تو تابع row updating همون مقدار نام قبلی رو نشون میده .
اصلا نمیدونم چرا اینجوری میشه ، کسی هست کمکی بکنه ؟

elina
چهارشنبه 15 شهریور 1391, 16:14 عصر
این قسمت UI برنامه هست

<asp:GridView ID="GContractorGW" runat="Server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px"
CellPadding="4" ForeColor="Black" GridLines="Vertical" SkinID="RecordList" Width="100%"
ShowFooter="False" AutoGenerateEditButton="true" OnRowEditing="GContractorGW_RowEditing" OnRowCancelingEdit="GContractorGW_RowCancelingEdit"
OnRowUpdating="GContractorGW_UpdateCommand" DataKeyNames="ContractorID" EnableViewState="True">

<Columns>
<asp:BoundField DataField="ContractorID" HeaderText="شماره خودکار" ReadOnly="True" />

<asp:TemplateField HeaderText="نام">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>

<EditItemTemplate>
<asp:TextBox ID="txtName" runat="Server" Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>

<FooterTemplate>
<asp:TextBox ID="txtnewName" runat="Server"></asp:TextBox>
</FooterTemplate>

</asp:TemplateField>
<asp:TemplateField HeaderText="نام خانوادگی">

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

<EditItemTemplate>
<asp:TextBox ID="txtFamily" runat="Server" Text='<%# Bind("Family") %>'></asp:TextBox>
</EditItemTemplate>

<FooterTemplate>
<asp:TextBox ID="txtFamily" runat="Server"></asp:TextBox>
</FooterTemplate>

</asp:TemplateField>
<asp:TemplateField HeaderText="نام پدر">

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

<EditItemTemplate>
<asp:TextBox ID="txtfathername" runat="Server" Text='<%# Bind("FatherName") %>'></asp:TextBox>
</EditItemTemplate>

<FooterTemplate>
<asp:TextBox ID="fathername" runat="Server"></asp:TextBox>
</FooterTemplate>

</asp:TemplateField>
<asp:TemplateField HeaderText="شماره شناسنامه">

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

<EditItemTemplate>
<asp:TextBox ID="txtShsh" runat="Server" Text='<%# Bind("Shsh") %>'></asp:TextBox>
</EditItemTemplate>

<FooterTemplate>
<asp:TextBox ID="Shsh" runat="Server"></asp:TextBox>
</FooterTemplate>

</asp:TemplateField>
<asp:TemplateField HeaderText="تلفن">

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

<EditItemTemplate>
<asp:TextBox ID="txtTelephone" runat="Server" Text='<%# Bind("Telephone") %>'></asp:TextBox>
</EditItemTemplate>

<FooterTemplate>
<asp:TextBox ID="Telephone" runat="Server" Text='<%# Eval("Telephone") %>'></asp:TextBox>
</FooterTemplate>

</asp:TemplateField>
<asp:TemplateField HeaderText="آدرس">

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

<EditItemTemplate>
<asp:TextBox ID="txtAddress" Columns="30" runat="Server" Text='<%# Bind("Address") %>'></asp:TextBox>
</EditItemTemplate>

<FooterTemplate>
<asp:TextBox ID="Address" runat="Server" Text='<%# Eval("Address") %>'></asp:TextBox>
</FooterTemplate>

</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" />
<RowStyle BackColor="#F7F7DE" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />


</asp:GridView>

و قسمت behind code هم


public partial class ContractorReg : System.Web.UI.Page
{
string ConnectionString = "Data Source=.;Initial Catalog=CMMS;Integrated Security=True";
protected void Page_Load(object sender, EventArgs e)
{
FillContractor();
}
// public event GridViewEditEventHandler RowEditing;
private void FillContractor()
{
GContractorGW.AutoGenerateColumns = false;
SqlConnection Connection = new SqlConnection(ConnectionString);
Connection.Open();
SqlDataAdapter DaContractor = new SqlDataAdapter("SELECT * FROM [Contractor]", ConnectionString);
DataTable Ds2Contractor = new DataTable();
DaContractor.Fill(Ds2Contractor);
if (Ds2Contractor.Rows.Count > 0)
{
GContractorGW.DataSource = Ds2Contractor;
GContractorGW.DataBind();
}
else
{
//Message.Text = "Unable to connect to the database.";
}
}


protected void GContractorGW_RowEditing(object sender, GridViewEditEventArgs e)
{
GContractorGW.EditIndex = e.NewEditIndex;
//int RowIndex = e.NewEditIndex;
//FillContractor();
}


protected void GContractorGW_RowCancelingEdit(object source, GridViewCancelEditEventArgs e)
{

GContractorGW.EditIndex = -1;

FillContractor();
}
protected void GContractorGW_DeleteCommand(object source, GridViewDeleteEventArgs e)
{

}
protected void GContractorGW_UpdateCommand(object source, GridViewUpdateEventArgs e)
{
int RowIndex = e.RowIndex;
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = con;
GridViewRow row = GContractorGW.Rows[e.RowIndex];
string Name = ((TextBox)GContractorGW.Rows[RowIndex].FindControl("txtName")).Text;
string family = ((TextBox)GContractorGW.Rows[RowIndex].FindControl("txtFamily")).Text;
if (Name == "" || Name == null || family == null || family == "")
{
string error = "<script language = javascript >alert('شمامجازبهحذفنامونامخا وادگینمیباشید ');</script>";
}
else
{
Cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = Name;
Cmd.Parameters.Add("@Family", SqlDbType.NVarChar).Value = family;
}
//(TextBox)GContractorGW.Rows[inde
string fathername = ((TextBox)GContractorGW.Rows[RowIndex].Cells[4].Controls[0]).Text;
if (fathername == "" || fathername == null)
{
fathername = System.DBNull.Value.ToString();
}
string shomaresh = ((TextBox)GContractorGW.Rows[RowIndex].Cells[5].Controls[0]).Text;
if (shomaresh == "" || shomaresh == null)
{
shomaresh = System.DBNull.Value.ToString();
}
string add = ((TextBox)GContractorGW.Rows[RowIndex].Cells[7].Controls[0]).Text;
if (add == "" || add == null)
{
add = System.DBNull.Value.ToString();
}
string tel = ((TextBox)GContractorGW.Rows[RowIndex].Cells[6].Controls[0]).Text;
if (tel=="" || tel==null)
{
tel = System.DBNull.Value.ToString();
}
Cmd.Parameters.Add("@FatherName", SqlDbType.NVarChar).Value = fathername;
Cmd.Parameters.Add("@Shsh", SqlDbType.NVarChar).Value = shomaresh;
Cmd.Parameters.Add("@Telephone", SqlDbType.NVarChar).Value = tel;
Cmd.Parameters.Add("@Address", SqlDbType.NText).Value = add;

// ((TextBox)(row.Cells[2].Controls[0])).Text;



Cmd.CommandText = "Update [CMMS].[dbo].[Contractor] set Name=@Name,Family=@Family,Telephone=@Telephone,Add ress=@Address,Shsh=@Shsh where FatherName=@FatherName";
if (Cmd.Connection.State != ConnectionState.Open)
{
Cmd.Connection.Open();
}


Cmd.ExecuteNonQuery();

Cmd.Connection.Close();
GContractorGW.EditIndex = -1;
FillContractor();
}

}





یه کم طولانیه ، میدونم . اگه یه کم وقت بذارین ممنون میشم :)

meisam12
چهارشنبه 15 شهریور 1391, 20:37 عصر
نحوه کدنویسیتان اشتباه می باشد. دقیقاً بگید چه می خواهید تا کمکتان کنم.

سلام دوستان
من یه گرید ویو دارم که توش به عنوان مثال یه فیلد نام دارم . روی این row یه کلید ویرایش گذاشتم ، هم تابع row editing و هم row updating رو هم براش نوشتم .
موقعی که کلید ویرایش رو میزنم به row editing میره و همه فیلد هام از حالت لیبل به تکست باکس تبدیل میشه ، ولی وقتی نام رو تغییر میدم ، تو تابع row updating همون مقدار نام قبلی رو نشون میده .
اصلا نمیدونم چرا اینجوری میشه ، کسی هست کمکی بکنه ؟

elina
پنج شنبه 16 شهریور 1391, 09:20 صبح
حقیقتا من تازه برنامه نویسی رو شروع کردم ، این نمونه رو برای کارم از help خود msdn استفاده کردم که به اینجا رسوندم
من یه فرم برای ورود اطلاعات دستگاه دارم . حالا میخوام وقتی اطلاعات وارد دیتابیس میشه ، داخل یه گردی ویو هم که زیر فرم من هستش این اطلاعات نشون داره بشه و داخل خود گرید ویو کلیدی واسه ویرایش و حذف داشته باشم .

elina
پنج شنبه 16 شهریور 1391, 10:49 صبح
میشه یه راهنمایی در مورد اشکالم در مورد برنامه نویسی هم بکنین لطفا .

elina
یک شنبه 19 شهریور 1391, 13:14 عصر
هیشکی نست کمکی بده ؟ :ناراحت:

e2j_8126
یک شنبه 19 شهریور 1391, 17:56 عصر
دانلود برنامه گرید با قابلیت ذخیره ،حذف ،ویرایش و اطلاعات و عکس (http://barnamenevis.org/showthread.php?248285-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%DA%AF%D8%B1%DB%8C%D8%AF-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%8C%D8%AD%D8%B0%D9%81-%D8%8C%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4-%D9%88-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D9%88-%D8%B9%DA%A9%D8%B3)