XML kodları,
<?xml version="1.0" standalone="yes"?>
<comments><comment>
<author>1Ahmet</author>
<email>ahmet@gmail.com</email>
<text>sdsdsd</text>
<date>08.02.2010</date>
<path>07.jpg</path>
<approve>true</approve>
</comment>
HTML kodları
<asp:GridView ID="gvitems" runat="server" OnRowEditing="Editdata" OnPageIndexChanging="pageddata"
OnRowDeleting="Deletedata" OnRowUpdating="Updatedata" OnRowCancelingEdit="Canceldata"
PageSize="10" AllowPaging="True" CellPadding="4" ForeColor="#333333" AutoGenerateColumns="False"
Width="100%" GridLines="None" OnRowDataBound="gvitems_RowDataBound">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<PagerSettings Position="Bottom" />
<FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" HorizontalAlign="Left" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
Row
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblRowNumber" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Author
</HeaderTemplate>
<ItemTemplate>
<%#Eval("author") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox class="textbox" ID="txtauthor" runat="server" Text='<%#Eval("author") %>' />
<asp:RequiredFieldValidator ID="rfvAuthor" runat="server" ControlToValidate="txtauthor"
ValidationGroup="comments" ErrorMessage="Author empty.">*</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Email
</HeaderTemplate>
<ItemTemplate>
<%#Eval("email") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox class="textbox" ID="txtemail" runat="server" Text='<%#Eval("email") %>' />
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" ControlToValidate="txtemail"
ValidationGroup="comments" ErrorMessage="Email empty.">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="Email format."
ControlToValidate="txtemail" ValidationGroup="comments" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Text
</HeaderTemplate>
<ItemTemplate>
<%#Eval("text") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox class="textbox" Rows="15" Columns="50" ID="txttext" runat="server" TextMode="MultiLine"
Text='<%#Eval("text") %>' />
<asp:RequiredFieldValidator ID="rfvText" runat="server" ControlToValidate="txttext"
ValidationGroup="comments" ErrorMessage="Text empty.">*</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Date
</HeaderTemplate>
<ItemTemplate>
<%#Eval("date") %>
</ItemTemplate>
<EditItemTemplate>
Time:
<asp:TextBox class="textbox" ID="txtTime" runat="server" Text='<%# Convert.ToDateTime(Eval("date").ToString()).ToShortTimeString() %>' /><br />
Date:
<asp:TextBox class="textbox" ID="txtDate" runat="server" Text='<%# Convert.ToDateTime(Eval("date").ToString()).ToShortDateString() %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Path
</HeaderTemplate>
<ItemTemplate>
<%#Eval("path") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox class="textbox" ID="txtpath" runat="server" Text='<%#Eval("path") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Approve
</HeaderTemplate>
<ItemTemplate>
<%#Eval("approve") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="drpApprove" runat="server">
<asp:ListItem Value="true">True</asp:ListItem>
<asp:ListItem Value="false">False</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button class="button" ID="btnEdit" runat="server" CommandName="Edit" Text="Düzenle" />
<asp:Button class="button" ID="btnDelete" runat="server" CommandName="Delete" Text="Sil"
OnClientClick="javascript:return confirm('Silmek istediğinizden eminmisiniz?')" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button class="button" ValidationGroup="comments" ID="btnUpdate" runat="server"
CommandName="Update" Text="Güncelle" />
<asp:Button class="button" ID="btnCancel" runat="server" CommandName="Cancel" Text="İptal" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<hr style="height: 15; text-align: left; color: #FF0000; width: 100%" />
<div>
<table>
<tr>
<td colspan="2" align="center">
<strong>NEW</strong>
</td>
</tr>
<tr>
<td>
<strong>Author :</strong>
</td>
<td>
<asp:TextBox class="textbox" ID="txtNewAuthor" runat="server" />
<asp:RequiredFieldValidator ID="rfvNewAuthor" runat="server" ControlToValidate="txtNewAuthor"
ValidationGroup="new" ErrorMessage="Author empty.">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<strong>Email :</strong>
</td>
<td>
<asp:TextBox class="textbox" ID="txtNewEmail" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtNewEmail"
ValidationGroup="new" ErrorMessage="Email empty.">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmail" runat="server" ErrorMessage="Email format."
ControlToValidate="txtNewEmail" ValidationGroup="new" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">*</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<strong>Text :</strong>
</td>
<td>
<asp:TextBox class="textbox" ID="txtNewText" Rows="15" Columns="50" runat="server"
TextMode="MultiLine" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtNewText"
ValidationGroup="new" ErrorMessage="Text empty.">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<strong>Date :</strong>
</td>
<td>
<asp:TextBox class="textbox" ID="txtNewDate" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtNewDate"
ValidationGroup="new" ErrorMessage="Date empty.">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<strong>Path :</strong>
</td>
<td>
<asp:TextBox class="textbox" ID="txtNewPath" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtNewPath"
ValidationGroup="new" ErrorMessage="Path empty.">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<strong>Approve :</strong>
</td>
<td>
<asp:DropDownList ID="drpApprove" runat="server">
<asp:ListItem Value="true">True</asp:ListItem>
<asp:ListItem Value="false">False</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtNewPath"
ValidationGroup="new" ErrorMessage="Path empty.">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button class="button" ValidationGroup="new" ID="btnAddComment" runat="server"
Text="Kaydet" OnClick="btnAddComment_Click" />
</td>
</tr>
</table>
</div>
Code Behind kısmı
void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack)
{
GetData();
}
}
void GetData()
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("tempcomments.xml"));
gvitems.DataSource = ds;
gvitems.DataBind();
} protected void Editdata(object s, GridViewEditEventArgs e)
{
gvitems.EditIndex = e.NewEditIndex;
GetData();
}
protected void Deletedata(object s, GridViewDeleteEventArgs e)
{
GetData();
DataSet ds = gvitems.DataSource as DataSet;
ds.Tables[0].Rows[gvitems.Rows[e.RowIndex].DataItemIndex].Delete();
ds.WriteXml(Server.MapPath("tempcomments.xml"));
GetData();
}
protected void Canceldata(object s, GridViewCancelEditEventArgs e)
{
gvitems.EditIndex = -1;
GetData();
}
protected void Updatedata(object s, GridViewUpdateEventArgs e)
{
int i = e.RowIndex;
string author = (gvitems.Rows[e.RowIndex].FindControl("txtauthor") as TextBox).Text;
string email = (gvitems.Rows[e.RowIndex].FindControl("txtemail") as TextBox).Text;
string text = (gvitems.Rows[e.RowIndex].FindControl("txttext") as TextBox).Text;
string date = (gvitems.Rows[e.RowIndex].FindControl("txtdate") as TextBox).Text;
string path = (gvitems.Rows[e.RowIndex].FindControl("txtpath") as TextBox).Text;
string approve = (gvitems.Rows[e.RowIndex].FindControl("drpApprove") as DropDownList).SelectedValue;
gvitems.EditIndex = -1;
GetData();
DataSet ds = (DataSet)gvitems.DataSource;
ds.Tables[0].Rows[i]["author"] = author;
ds.Tables[0].Rows[i]["email"] = email;
ds.Tables[0].Rows[i]["text"] = text;
ds.Tables[0].Rows[i]["date"] = date;
ds.Tables[0].Rows[i]["path"] = path;
ds.Tables[0].Rows[i]["approve"] = approve;
ds.WriteXml(Server.MapPath("tempcomments.xml"));
GetData();
}
protected void pageddata(object s, GridViewPageEventArgs e)
{
gvitems.PageIndex = e.NewPageIndex;
GetData();
}
protected void btnAddComment_Click(object sender, EventArgs e)
{
GetData();
DataSet ds = gvitems.DataSource as DataSet;
DataRow dr = ds.Tables[0].NewRow();
dr["author"] = txtNewAuthor.Text;
dr["email"] = txtNewEmail.Text;
dr["text"] = txtNewText.Text;
dr["date"] = txtNewDate.Text;
dr["path"] = txtNewPath.Text;
dr["approve"] = txtNewPath.Text;
ds.Tables[0].Rows.Add(dr);
ds.AcceptChanges();
ds.WriteXml(Server.MapPath("tempcomments.xml"));
GetData();
txtNewAuthor.Text = string.Empty;
txtNewEmail.Text = string.Empty;
txtNewText.Text = string.Empty;
txtNewDate.Text = string.Empty;
txtNewPath.Text = string.Empty;
}
protected void gvitems_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex == gvitems.EditIndex)
{
DataRowView dr;
dr = (DataRowView)e.Row.DataItem;
DropDownList drpApprove = e.Row.FindControl("drpApprove") as DropDownList;
drpApprove.SelectedValue = dr["approve"].ToString();
}
(e.Row.FindControl("lblRowNumber") as Label).Text = (e.Row.RowIndex + 1 + (gvitems.PageIndex * 10)).ToString();
}
}
Codebehind tarafı
ddlBusinessLinesL1.Attributes.Add("onchange", "if(!DisableBLPostBack('" & ddlBusinessLinesL1.ClientID & "','" & ddlReportType.ClientID & "')){return false;}")
html sayfaya eklenecek javascript
function DisableBLPostBack(ddlb,rpType)
{
var ddlbus=document.getElementById(ddlb);
var ddl=document.getElementById(rpType);
if (ddl.value==1) 'postback olmasını engellemek istediğim değer 1
{
return false;
}
else
{
return true;
}
}
Control:
<asp:DropDownList ID="ddlBusinessLinesL1" runat="server" Width="155px" AutoPostBack="True">
</asp:DropDownList>

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string startingDir = Server.MapPath("files");
lblCurrentDir.Text = startingDir;
ShowFilesIn(startingDir);
ShowDirectoriesIn(startingDir);
btnDelete.Attributes.Add("onclick", "javascript:return confirm('Silmek istediğinizden eminmisiniz?')");
btnCreate.Attributes.Add("onKeyPress", "return keyRestrict(event,'abcdefgğhijklmnopqrstuvwxyzABCDEFGĞHIİJKLMNOPQRSTUVWXYZ ')");
}
}
void ShowFilesIn(string dir)
{
DirectoryInfo dirInfo = new DirectoryInfo(dir);
lstFiles.Items.Clear();
foreach (FileInfo fileItem in dirInfo.GetFiles())
{
lstFiles.Items.Add(fileItem.Name);
}
}
void ShowDirectoriesIn(string dir)
{
DirectoryInfo dirInfo = new DirectoryInfo(dir);
lstDirs.Items.Clear();
foreach (DirectoryInfo dirItem in dirInfo.GetDirectories())
{
lstDirs.Items.Add(dirItem.Name);
}
}
protected void cmdParent_Click(object sender, EventArgs e)
{
if (Directory.GetParent(lblCurrentDir.Text) != null)
{
if (lblCurrentDir.Text != ConfigurationManager.AppSettings["root"].ToString())
{
string newDir = Directory.GetParent(lblCurrentDir.Text).FullName;
lblCurrentDir.Text = newDir;
ShowFilesIn(newDir);
ShowDirectoriesIn(newDir);
}
else
{
alert("Üst klasöre erişim yetkiniz yok");
//lblMesaj.Text = "Üst klasöre erişim yetkiniz yok";
}
}
}
protected void btnDownload_Click(object sender, EventArgs e)
{
string newDir = Path.Combine(lblCurrentDir.Text, lstFiles.SelectedItem.Text);
System.IO.Stream akisnesne;
int tamponboyu = 32768;
byte[] tampon = new byte[tamponboyu + 1];
int okunanboyu;
int kalanboyu;
akisnesne = new System.IO.FileStream(newDir, FileMode.Open, FileAccess.Read, FileShare.Read);
kalanboyu = (int)akisnesne.Length;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + lstFiles.SelectedItem.Text);
while (kalanboyu > 0)
{
if (Response.IsClientConnected)
{
okunanboyu = akisnesne.Read(tampon, 0, tamponboyu);
Response.OutputStream.Write(tampon, 0, okunanboyu);
Response.Flush();
kalanboyu = kalanboyu - okunanboyu;
}
else
{
kalanboyu = -1;
}
}
if (!(akisnesne == null))
{
akisnesne.Close();
}
}
protected void btnDelete_Click(object sender, EventArgs e)
{
if (lstFiles.SelectedIndex != -1)
{
string newDir = Path.Combine(lblCurrentDir.Text, lstFiles.SelectedItem.Text);
//lblCurrentDir.Text = newDir;
System.IO.File.Delete(newDir);
ShowFilesIn(lblCurrentDir.Text);
ShowDirectoriesIn(lblCurrentDir.Text);
alert("Silme işlemi başarılıyla gerçekleştirildi");
}
else
{
alert("Silinecek dosya seçili değil");
}
}
protected void btnUpload_Click(object sender, EventArgs e)
{
if (lblCurrentDir.Text != ConfigurationManager.AppSettings["root"].ToString())
{
if (fileup.HasFile)
{
fileup.SaveAs(lblCurrentDir.Text + @"\" + fileup.FileName.ToString());
ShowFilesIn(lblCurrentDir.Text);
ShowDirectoriesIn(lblCurrentDir.Text);
alert("Yükleme işlemi başarıyla gerçekleştirildi");
}
}
}
void alert(string msg)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "messagebox", "alert('" + msg + "');", true);
}
protected void btnCreate_Click(object sender, EventArgs e)
{
if (lblCurrentDir.Text != ConfigurationManager.AppSettings["root"].ToString())
{
Directory.CreateDirectory(lblCurrentDir.Text + @"\" + txtCreate.Text);
ShowFilesIn(lblCurrentDir.Text);
ShowDirectoriesIn(lblCurrentDir.Text);
alert(txtCreate.Text + " isminde klasör oluşturuldu.");
}
else
{
alert("Bu klasörde yeni bir klasör oluşturma yetkiniz yok");
}
}
protected void btnDirDelete_Click(object sender, EventArgs e)
{
if (lstDirs.SelectedIndex != -1)
{
if (lblCurrentDir.Text == ConfigurationManager.AppSettings["root"].ToString())
{
alert("Bu bölümdeki klasörleri silme yetkiniz yok");
}
else
{
string delDir = Path.Combine(lblCurrentDir.Text, lstDirs.SelectedItem.Text);
System.IO.Directory.Delete(delDir);
ShowFilesIn(lblCurrentDir.Text);
ShowDirectoriesIn(lblCurrentDir.Text);
alert("Silme işlemi başarılıyla gerçekleştirildi");
}
}
else
{
alert("Silinecek klasör seçilmemiş");
}
}
protected void btnAsagi_Click(object sender, EventArgs e)
{
if (lstDirs.SelectedIndex != -1)
{
if (lblCurrentDir.Text == ConfigurationManager.AppSettings["root"].ToString())
{
if (lstDirs.SelectedItem.Text == User.Identity.Name.ToString() || lstDirs.SelectedItem.Text == "ortak")
{
string newDir = Path.Combine(lblCurrentDir.Text, lstDirs.SelectedItem.Text);
lblCurrentDir.Text = newDir;
ShowFilesIn(newDir);
ShowDirectoriesIn(newDir);
}
else
{
alert("Sadece kişisel ve ortak klasörlere erişim erişebilirsiniz");
}
}
else
{
string newDir = Path.Combine(lblCurrentDir.Text, lstDirs.SelectedItem.Text);
lblCurrentDir.Text = newDir;
ShowFilesIn(newDir);
ShowDirectoriesIn(newDir);
}
}
}
protected void btnBilgiler_Click(object sender, EventArgs e)
{
if (lstFiles.SelectedIndex != -1)
{
string fileName = Path.Combine(lblCurrentDir.Text,
lstFiles.SelectedItem.Text);
FileInfo selFile = new FileInfo(fileName);
StringBuilder displayText = new StringBuilder();
displayText.Append("Adı: ");
displayText.Append(selFile.Name);
displayText.Append(", Boyutu: ");
displayText.Append(selFile.Length);
displayText.Append(", ");
displayText.Append("Oluştuma: ");
displayText.Append(selFile.CreationTime.ToString());
displayText.Append(", Enson Erişim: ");
displayText.Append(selFile.LastAccessTime.ToString());
alert( displayText.ToString());
}
else
{
alert("Dosya seçin");
}
}
}