daha yeni başladımda asp.net e
1
●2.476
<anket="Emrealizmi Nasıl bilirsiniz ?"> <cevap text="Eh işte">0</cevap> <cevap text="Çok İyi">44</cevap> </anket>// Torpil geçelim kendimize :P
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="View1" runat="server">
<table>
<tr>
<td id="header">
ANKET
</td>
</tr>
<tr>
<td id="head">
<asp:Label ID="lblHead" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:RadioButtonList ID="rbQ" runat="server" Width="95%">
</asp:RadioButtonList>
</td>
</tr>
<tr>
<td id="footer">
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Oy Ver" />
<asp:Button ID="btnResults" runat="server" OnClick="btnResults_Click" Text="Sonuçlar" />
</td>
</tr>
</table>
</asp:View>
<asp:View ID="View2" runat="server">
<asp:Xml ID="Xml1" runat="server" DocumentSource="~/App_Data/anket.xml" TransformSource="~/App_Data/anket.xsl"></asp:Xml>
<asp:ImageButton ID="imgBack" runat="server" ImageUrl="~/images/back.gif" OnClick="imgBack_Click"
ToolTip="geri dön" />
</asp:View>
</asp:MultiView>Simdide Anket.aspx.Cs Dosyamizi yazalım...protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
anketyap();
}
void anketyap()
{
string path = Server.MapPath(@"App_Data/anket.xml");
//xml verisi
XDocument myXml = XDocument.Load(path);
//Anket-> cevap @text
lblHead.Text = myXml.Element("Anket").Attribute("name").Value;
//cevaplar
foreach (var att in myXml.Element("Anket").Elements("cevap"))
rbQ.Items.Add(att.Attribute("text").Value);
}
XDocument ile dosyayı hafızaya yükledikten sonra sırayla;
- Anket başlığını Label kontrolünün Text özelliğine,
- Soruları da adedi kadar RadioButtonList kontrolüne Item (eleman) olarak ekliyoruz.
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (rbQ.SelectedValue != string.Empty)
{
string path = Server.MapPath(@"App_Data/anket.xml");
//xml verisi
XDocument myXml = XDocument.Load(path);
//oy sonuçlar
//(Descendants direk olarak cevap node' una ulaşır)../cevap @text = value | string
int value = Convert.ToInt32(myXml
.Descendants("cevap")
.Where(
n => ((string)n.Attribute("text").Value == rbQ.SelectedValue)
).Single().Value
);
//değeri 1 arttırılıyor
value++;
//yeni değer atanıyor
//../cevap @text = value | string
myXml.Descendants("cevap")
.Single(
n => ((string)n.Attribute("text").Value == rbQ.SelectedValue)
).Value = value.ToString();
//xml verisi kaydediliyor
myXml.Save(path);
}
}Anketin oylama kısmında ise seçilen soruya ait node' un değerini 1 arttırıyoruz. Bu işlemi yapmak için RadioButtonList kontrolünden seçili Item' ın değerini ait özelliğe göre sorgu yapıp ilgili değeri alıyoruz. Sonrasında ise Xml verisini tekrar kaydediyoruz.