<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting"
OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCommand="GridView1_RowCommand" OnRowCancelingEdit="GridView1_RowCancelingEdit"
ShowFooter="True" Width="400px"
CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="Adı">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Width="100" Text='<%# Bind("adi") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAd" runat="server" Width="100"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("adi") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Soyadı">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Width="100" Text='<%# Bind("soyadi") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtSoyad" runat="server" Width="100"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("soyadi") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Boyu">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Width="100" Text='<%# Bind("boy") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtBoy" runat="server" Width="100"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("boy") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Kilosu">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("kilo") %>' Width="100"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtKilo" runat="server" Width="100"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("kilo") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="İdeal Kilo">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("idealkilo") %>' Width="100"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtIdeal" runat="server" Width="100"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("idealkilo") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="Güncelle"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="İptal"></asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="btnInsert" runat="server" CommandName="insert">Ekle</asp:LinkButton>
</FooterTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
Text="Düzenle"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="120px" />
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" DeleteText="Sil" />
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
Sıra geldi kodları düzenlemeye. Aşağıdaki kodları cs dosyası içine yazalım.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
bilgilerigetir();
}
private void bilgilerigetir()
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("diyetisyen.xml"));
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bilgilerigetir();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bilgilerigetir();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int i = GridView1.Rows[e.RowIndex].DataItemIndex;
string adi = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;
string soyadi = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;
string boy = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox3")).Text;
string kilo = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox4")).Text;
double ideal=50 + 2.3 * ((double.Parse(boy) / 2.54) - 60);
string idealkilo = String.Format("{0,6:0.00}", ideal);
GridView1.EditIndex = -1;
bilgilerigetir();
DataSet ds = (DataSet)GridView1.DataSource;
ds.Tables[0].Rows[i]["adi"] = adi;
ds.Tables[0].Rows[i]["soyadi"] = soyadi;
ds.Tables[0].Rows[i]["boy"] = boy;
ds.Tables[0].Rows[i]["kilo"] = kilo;
ds.Tables[0].Rows[i]["idealkilo"] = idealkilo;
ds.WriteXml(Server.MapPath("diyetisyen.xml"));
bilgilerigetir();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
bilgilerigetir();
DataSet ds = (DataSet)GridView1.DataSource;
ds.Tables[0].Rows[GridView1.Rows[e.RowIndex].DataItemIndex].Delete();
ds.WriteXml(Server.MapPath("diyetisyen.xml"));
bilgilerigetir();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "insert")
{
string adi = ((TextBox)GridView1.FooterRow.FindControl("txtAd")).Text;
string soyadi = ((TextBox)GridView1.FooterRow.FindControl("txtSoyad")).Text;
string boy = ((TextBox)GridView1.FooterRow.FindControl("txtBoy")).Text;
string kilo = ((TextBox)GridView1.FooterRow.FindControl("txtKilo")).Text;
double ideal = 50 + 2.3 * ((double.Parse(boy) / 2.54) - 60);
string idealkilo = String.Format("{0,6:0.00}", ideal);
bilgilerigetir();
DataSet ds = GridView1.DataSource as DataSet;
DataRow dr = ds.Tables[0].NewRow();
dr[0] = adi;
dr[1] = soyadi;
dr[2] = boy;
dr[3] = kilo;
dr[4] = idealkilo;
ds.Tables[0].Rows.Add(dr);
ds.AcceptChanges();
ds.WriteXml(Server.MapPath("diyetisyen.xml"));
bilgilerigetir();
}
}
Şimdi de personelin boy ortalamasını bulalım. Bu işlemi gerçekleştirmenin birden fazla yöntemi vardır. Bu yöntemlere geçmeden önce en güncel bilgilerin listelendiği bölüm olan bilgilerigetir() fonksiyonu içinde bu işlemleri gerçekleştirmemiz gerekir. Web sayfasında GridView altına bir adet Label ekleyelim ve ismini lblSonuc olarak belirleyelim.
<asp:Label ID="lblSonuc" runat="server" Text="" Font-Size="Large" ForeColor="Blue"></asp:Label>
Dataset içinden bilgileri alarak
int adet;
double toplam=0;
adet = ds.Tables[0].Rows.Count;
for (int i = 0; i < adet; i++)
{
toplam +=double.Parse(ds.Tables[0].Rows[i]["boy"].ToString());
}
lblSonuc.Text = "Personelin Boy Ortalaması :" + (toplam / adet).ToString("0.00");
GridView içinden bilgileri alarak
int adet;
double toplam = 0;
adet = GridView1.Rows.Count;
for (int i = 0; i < adet; i++)
{
toplam += Convert.ToDouble(((Label)GridView1.Rows[i].FindControl("Label3")).Text);
}
lblSonuc.Text = "Personelin Boy Ortalaması :" + (toplam / adet).ToString("0.00");