PDA

View Full Version : سوال: نحوه اضافه کردن سطر جدید در اخر سطرهای gridview در asp



moshavermojarab
شنبه 28 آذر 1394, 08:20 صبح
سلام دوستان من تصمیم دارم یک gridview در asp طراحی کنم که بتونم به صورت اتوماتیک یه سطر جدید اضافه کنم و اطلاعات ثبت کنم در جدول.
نمی خواهم مثل قبل اطلاعات در یک سری textbox دریافت کنم بعد اطلاعات در گرید نمایش داده بشه می خواهم همان جا در گرید این کار انجام بشود.
ممنون

malloc
شنبه 28 آذر 1394, 09:48 صبح
برو سمت گرید ویو تلریک .....

یا خود بصورت دستی و سمت سروری کل دیزاین گرید ویو رو انجام بده

korosh00
شنبه 28 آذر 1394, 11:10 صبح
http://www.aspsnippets.com/Articles/Adding-Dynamic-Rows-in-ASP.Net-GridView-Control-with-TextBoxes.aspx

moshavermojarab
شنبه 28 آذر 1394, 15:54 عصر
http://www.aspsnippets.com/Articles/Adding-Dynamic-Rows-in-ASP.Net-GridView-Control-with-TextBoxes.aspx

ممنون از راهنماییتون من این کدهای زیر را نوشتم جواب هم می دهد اما دوتا مشکل دارم
1- اینکه در هنگام ویرایش کردن اگر یکی از فیلدها را ویرایش کرده باشه ولی دکمه ویرایش نزده باشه این اطلاعات ویرایش نمی شود تو جدول من می خواهم به صورتی باشه که اگر ویرایش کرده بود ولی فراموش کرده بود بود دکمه ویرایش بزند در هنگام بسته شدن صفحه هشدار بدهد که یک سری اطلاعات هنوز ویرایش نسده
2- اگر که در سطر آخر داده ایی وارد کرده باشد ولی باز فراموش کند دکمه درج بزند در هنگام بسته شده صفحه هشدار بدهد
برای این دوتا مشکل چه بایستی بکنم؟
کدهای زیر مربوط به برنامه من هستند


<div align="center">

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CellPadding="4"

ForeColor="#333333" ShowFooter="True"
onselectedindexchanging="GridView1_SelectedIndexChanging"
onrowupdating="GridView1_RowUpdating"
onrowdeleting="GridView1_RowDeleting" AllowSorting="True" onsorting="GridView1_Sorting"

>
<Columns>

<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LkB2" runat="server" CommandName="Update" OnClientClick="return confirm('آیا شما مطمئن به ویرایش رکورد هستید؟');">ویرایش</asp:LinkButton>
<asp:LinkButton ID="LkB3" runat="server" CommandName="delete" OnClientClick="return confirm('آیا شما مطمئن به حذف رکورد هستید؟');">حذف</asp:LinkButton>
</ItemTemplate>
<FooterTemplate>

<asp:LinkButton ID="LkB1" runat="server" CommandName="Select">درج رکورد جدید</asp:LinkButton>

</FooterTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText=" (کد عطف (صعودی/نزولی" SortExpression="Name">
<FooterTemplate>

<asp:TextBox ID="txt_Name" runat="server" ></asp:TextBox>

</FooterTemplate>
<ItemTemplate>

<asp:TextBox ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:TextBox>

</ItemTemplate>



</asp:TemplateField>

<asp:TemplateField HeaderText="(نام عطف (صعودی/نزولی" SortExpression="Branch">
<FooterTemplate>

<asp:TextBox ID="txt_Branch" runat="server"></asp:TextBox>

</FooterTemplate>
<ItemTemplate>

<asp:TextBox ID="Label2" runat="server" Text='<%# Eval("Branch")%>'></asp:TextBox>

</ItemTemplate>



</asp:TemplateField>

<asp:TemplateField HeaderText="(سطح (صعودی/نزولی" SortExpression="City">
<FooterTemplate>

<asp:TextBox ID="txt_City" runat="server"></asp:TextBox>

</FooterTemplate>
<ItemTemplate>

<asp:TextBox ID="Label3" runat="server" Text='<%# Eval("City") %>'></asp:TextBox>

</ItemTemplate>



</asp:TemplateField>
<asp:TemplateField HeaderText="ردیف">
<ItemTemplate>
<asp:Label ID="id" runat="server" Text='<% # Eval("ID") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>

<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />

<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
</asp:GridView>

<asp:HiddenField ID="hf" runat="server" />

</div>

کدهای زیر کدهای C#‎‎‎ هستند


public string sortExpr="";
public string sortDirection="";
SqlConnection con = new SqlConnection(@"Data Source=(local);Initial Catalog=moeindb;Integrated Security=True");
public string comm;
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{

BindGridView();

}

}



//method for binding GridView
private DataTable firstbind()
{
DataTable dt = new DataTable();
SqlDataAdapter da;
if (sortExpr != "" && sortDirection != "")
da = new SqlDataAdapter("Select ID, Name,Branch,City from tbl_student order by " + sortExpr + " " + sortDirection + "", con);
else
da = new SqlDataAdapter("Select ID, Name,Branch,City from tbl_student ", con);

con.Open();

da.Fill(dt);

con.Close();
return dt;
}
protected DataTable BindGridView()
{

DataTable dt = new DataTable();
dt=firstbind();
int i = 0;
dt.Columns.Remove("ID");
dt.Columns.Add("ID",typeof(System.Int32));
dt.Columns["ID"].SetOrdinal(0);
foreach(DataRow dr in dt.Rows )
{
i++;
dr["ID"] = i;
}

//if (dt.Rows.Count > 0)
//{

GridView1.DataSource = dt;

GridView1.DataBind();

// }
return dt;
}



// insert new record in database
protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{

// find values for update
System.Data.DataTable dt = new DataTable();
dt = firstbind();
var maxRow = dt.Select("ID = MAX(ID)");
string ff = maxRow[0][0].ToString();
int id_row = Int32.Parse(ff)+1;
TextBox txtname = (TextBox)GridView1.FooterRow.FindControl("txt_Name");

TextBox txtbranch = (TextBox)GridView1.FooterRow.FindControl("txt_Branch");

TextBox txtcity = (TextBox)GridView1.FooterRow.FindControl("txt_City");



// insert values into database

SqlCommand cmd = new SqlCommand("insert into tbl_student(ID,Name, Branch, City) values("+id_row+",'" + txtname.Text + "','" + txtbranch.Text + "','" + txtcity.Text + "')", con);

con.Open();

cmd.ExecuteNonQuery();

con.Close();



BindGridView();



}

void LkB1_Command(Object sender, CommandEventArgs e)
{
comm = e.CommandName;
}
void LkB2_Command(Object sender, CommandEventArgs e)
{
comm = e.CommandName;
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
System.Data.DataTable dt = new DataTable();
dt=firstbind ();
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
//int id = Int32.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());

TextBox txtname = (TextBox)row.FindControl("Label1");

TextBox txtbranch = (TextBox)row.FindControl("Label2");

TextBox txtcity = (TextBox)row.FindControl("Label3");
Label Id = (Label)row.FindControl("id");
int id_row = int.Parse(dt.Rows[int.Parse( Id.Text)-1][0].ToString());
SqlCommand cmd = new SqlCommand("update tbl_student set Name='" + txtname.Text + "', Branch='" + txtbranch.Text + "', City='" + txtcity.Text + "' where ID='" + id_row.ToString()+ "'", con);

con.Open();

cmd.ExecuteNonQuery();

con.Close();



BindGridView();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
Label id1 = (Label)row.FindControl("id");
System.Data.DataTable dt = new DataTable();
dt = firstbind();
int id_row =Int32.Parse(dt.Rows[ (Int32.Parse(id1.Text))-1][0].ToString());
SqlCommand cmd = new SqlCommand("delete from tbl_student where ID='"+id_row.ToString()+"'", con);

con.Open();

cmd.ExecuteNonQuery();

con.Close();



BindGridView();
}

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;

if (GridViewSortDirection == SortDirection.Ascending)

{

GridViewSortDirection = SortDirection.Descending;
sortExpr=sortExpression;
sortDirection="ASC";
BindGridView();
}
else
{

GridViewSortDirection = SortDirection.Ascending;
sortExpr = sortExpression;
sortDirection = "DESC";
BindGridView();

}


}
public SortDirection GridViewSortDirection
{

get
{

if (ViewState["sortDirection"] == null)

ViewState["sortDirection"] = SortDirection.Ascending;

return (SortDirection)ViewState["sortDirection"];

}

set { ViewState["sortDirection"] = value; }

}


تصویری از اجرای برنامه
137531