I am novice in .net. I am trying to display array length in a label. But it doesn't work out. I have given my code below. I would appreciate your help on this.
<%@ Page Language="C#" AutoEventWireup="true" Inherits="LoopImages" CodeFile="Locations.aspx.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Natural Pictures</title>
</head>
<body>
<form id="form1" runat="server">
<div style="height: 216px">
<center>
Natural Pictures
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Image ID="Image1" runat="server"
ImageUrl="~/Locations/Alps Mountain River.jpg" BorderStyle="None" Height="500px" />
<br /> Picture #
<asp:Label ID="Label1" runat="server" Text="1"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="<=Previous" OnClick="Button1_Click" CssClass="btn" />
<asp:Button ID="Button2" runat="server" Text="Next=>" OnClick="Button2_Click" CssClass="btn" />
<asp:Button ID="Button4" runat="server" Text="Last" OnClick="LastImage" CssClass="btn" />
<br />
Location Name:
<asp:Label ID="Label2" runat="server" Text="Alps Mountain River"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button3" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button3" runat="server" Text="Original" OnClick="Button3_Click" CssClass="btn" />
<asp:Label ID="Label3" runat="server" Text=""></asp:Label>
</center>
</div>
</form>
</body>
</html>
using System;
using System.IO;
public partial class LoopImages : System.Web.UI.Page
{
//get list
private DirectoryInfo dir;
private string rootDir;
private int arrcount;
private string filen;
private string[] imagenames;
protected void Page_load(object sender, EventArgs e)
{
rootDir = MapPath("Locations");
dir = new DirectoryInfo(@rootDir);
arrcount = 0;
foreach (FileInfo filen in dir.GetFiles())
{
arrcount++;
}
imagenames = new string[arrcount];
arrcount = 0;
foreach (FileInfo filen in dir.GetFiles())
{
imagenames[arrcount] = Convert.ToString(filen);
arrcount++;
}
}
//string[] stringBox = { "Alps Mountain River.jpg", "Ancient Colosseum Rome.jpg", "Andean Fields Ecuador.jpg", "Big Stone.jpg", "Black Browed Albatrosses.jpg", "CD Danxia.jpg", "Chao Phraya River Bangkok.jpg" };
private int counter;
private int n;
protected void Button1_Click(object sender, EventArgs e)
{
//previous
if (Convert.ToInt16(Label1.Text) >= 2)
{
counter = Convert.ToInt16(Label1.Text);
counter--;
n = counter - 1;
Label1.Text = Convert.ToString(counter);
Image1.ImageUrl = "~/Locations/" + imagenames[n];
var l = imagenames[n];
var ln = l.Replace(".jpg", "");
Label2.Text = ln ;
//int length = imagenames.Length;
Label3.Text = "Array " + arrcount;
}
else
{
Label1.Text = "7";
Image1.ImageUrl = "~/Locations/" + imagenames[6];
var l = imagenames[6];
var ln = l.Replace(".jpg", "");
Label2.Text = ln;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
//next
if (Convert.ToInt16(Label1.Text) <= 6)
{
counter = Convert.ToInt16(Label1.Text);
counter++;
n = counter - 1;
Label1.Text = Convert.ToString(counter);
Image1.ImageUrl = "~/Locations/" + imagenames[n];
var l = imagenames[n];
var ln = l.Replace(".jpg", "");
Label2.Text = ln;
}
else
{
Label1.Text = "1";
Image1.ImageUrl = "~/Locations/" + imagenames[0];
var l = imagenames[0];
var ln = l.Replace(".jpg", "");
Label2.Text = ln;
}
}
protected void Button3_Click(object sender, EventArgs e)
{
//original
Label1.Text = "1";
Image1.ImageUrl = "~/Locations/" + imagenames[0];
var l = imagenames[0];
var ln = l.Replace(".jpg", "");
Label2.Text = ln;
}
protected void LastImage(object sender, EventArgs e)
{
//Last
Label1.Text = "7";
Image1.ImageUrl = "~/Locations/" + imagenames[6];
var l = imagenames[6];
var ln = l.Replace(".jpg", "");
Label2.Text = ln;
}
}