Мне нужен элемент управления, который может содержать изображение и две кнопки-переключатели, например, тот, который мы имеем при загрузке изображений в fb / orkut.
1. Изображение
2. Удалить переключатель.
3. Радиокнопка Cover. [Сделать это изображение обложкой альбома]
Я создал пользовательский элемент управления с этими тремя вещами.
На моей странице aspx по нажатию кнопки мне нужно добавить этот пользовательский элемент управления.
Значит, пользователь будет выбирать изображение с помощью FileUpload, и когда он нажимает на кнопку, этот пользовательский элемент управления должен быть загружен.
Я могу загрузить контроль. Проверьте следующий код.
<code><code>
<pre lang="cs">
protected void btnAddURL_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
//ItemList is an array list used to store the filename.
ItemList.Add(FileUpload1.FileName);
showImage();
}
}
публичный void showImage ()
{
PlaceHolder p = новый PlaceHolder ();
// Создать эскиз
FileUpload1.SaveAs (@ "D: \ ASP \ Project_Dec_16 \ RealEstate \ SaveImage \" + FileUpload1.FileName);
System.Drawing.Image img1 = System.Drawing.Image.FromFile (@ "D: \ ASP \ Project_Dec_16 \ RealEstate \ SaveImage \" + FileUpload1.FileName);
System.Drawing.Image bmp2 = img1.GetThumbnailImage (100, 100, null, IntPtr.Zero);
bmp2.Save (@ "D: \ ASP \ Project_Dec_16 \ RealEstate \ SaveImage \ thumbnail \ L \" + FileUpload1.FileName);
// Загружаем изображения, выбранные пользователем
for (int i = 0; i & lt; = ItemList.Count - 1; i ++)
{
Control MyUserControl;
// Загружаем пользовательский элемент управления динамически
MyUserControl = LoadControl (& quot; MyControl.ascx & quot;);
MyUserControl.ID = & quot; MyUserControl & quot; + cnt ++;
// Назначаем URL
Image MyImage = (Image) MyUserControl.FindControl ("Image1");
// MyImage.ID = "Image" + cnt;
MyImage.ImageUrl = "~ / SaveImage / thumbnail / L /" + ItemList [i] .ToString ();
// Добавить элемент управления на панель.
p.Controls.Add (MyUserControl);
Panel2.Controls.Add (р);
Проблема:
1> Все изображения приходят на новую строку, я хочу, чтобы они были рядом друг с другом.
2> Как определить, какая радио-кнопка нажата, так как у меня более одного изображения, и у всех есть радио-кнопки.
3> Как захватить щелчок переключателя со страницы aspx?
4> Если есть другой способ добиться этого, дайте мне знать.
Искал в Google, но не смог найти решение для этого. :(
Заранее спасибо.
[Код после изменений]
в файле ascx я добавил следующий код
public event EventHandler rd_ClickDemo;
protected void deleteimage_CheckedChanged(object sender, EventArgs e)
{
rd_ClickDemo(sender, e);
}
protected void setascover_CheckedChanged(object sender, EventArgs e)
{
rd_ClickDemo(sender, e);
}
In aspx file on click of a button i am doing the following.
protected void btnAddURL_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
// Add file name to array list
ItemList.Add(FileUpload1.FileName);
//Add The URL in a text box.
txtAddURL.Text = txtAddURL.Text + System.Environment.NewLine + System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName);
//Image1.ImageUrl = System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName);
//this.Button1_Click(this, e);
showImage();
}
}
public void showImage()
{
PlaceHolder p = new PlaceHolder();
// Create a Thumbnail Image.
FileUpload1.SaveAs(@"D:\ASP\Project_Dec_16\RealEstate\SaveImage\" + FileUpload1.FileName);
System.Drawing.Image img1 = System.Drawing.Image.FromFile(@"D:\ASP\Project_Dec_16\RealEstate\SaveImage\" + FileUpload1.FileName);
System.Drawing.Image bmp2 = img1.GetThumbnailImage(100, 100, null, IntPtr.Zero);
bmp2.Save(@"D:\ASP\Project_Dec_16\RealEstate\SaveImage\thumbnail\L\" + FileUpload1.FileName);
//Load all images from array list.
for (int i = 0; i <= ItemList.Count - 1; i++)
{
// Load user control dynamically
MyUserControl = LoadControl("MyControl.ascx");
MyUserControl.ID = "MyUserControl" + cnt++;
// Find Radio Button
RadioButton rdb1 = (RadioButton)MyUserControl.FindControl("deleteimage");
RadioButton rdb2 = (RadioButton)MyUserControl.FindControl("setascover");
//Attach Group Name.
rdb1.GroupName = "G1" + cnt.ToString();
rdb1.ID = "Rb_ID_D" + cnt.ToString();
rdb1.AutoPostBack = true;
rdb1.CheckedChanged +=new EventHandler(rdb1_CheckedChanged);
//Attach Group Name.
rdb2.GroupName = "G1"+ cnt.ToString();
rdb2.ID = "Rb_ID" + cnt.ToString();
rdb2.AutoPostBack = true;
rdb2.CheckedChanged += new EventHandler(rdb1_CheckedChanged);
//Image MyImage = (Image)MyUserControl.FindControl("Image1");
// MyImage.ID = "Image" + cnt;
//Attach URL to Image.
Image MyImage = (Image)MyUserControl.FindControl("Image1");
MyImage.ImageUrl = "~/SaveImage/thumbnail/L/" + ItemList[i].ToString();
p.Controls.Add(MyUserControl);
Panel2.Controls.Add(p);
}
}
Тем не менее, я не могу вызвать событие radiobutton_CheckedChanged.
Пожалуйста, помогите.