Есть ли способ заполнить список флажков через datasource/databind, а затем на самом деле добавить изображение к каждому флажку? Я знаю, как делать как по отдельности, так и по-разному, но не могу понять, как заставить их работать вместе.Добавление изображения в список флажков после привязки
По существу, у меня будет список участников для учителей, из которых вы хотите выбрать, и меня попросили поместить снимок каждого ученика рядом с этим флажком.
То, как я получаю изображения в настоящее время, у меня есть веб-форма, которая вводит идентификатор в URL-адрес, а затем он захватывает blob с базы данных, а затем преобразует двоичный файл в миниатюрное изображение, сохраняет его локально, а затем перенаправляет на него. то, когда я хочу получить изображение на другой веб-форме, мне просто нужно использовать Response.Redirect("imgs.aspx?ID=[Student Id]")
, и он будет помещен в небольшое изображение ученика, есть ли способ изменить список флажков, чтобы я мог вызвать веб-форму imgs и отобразить образ ученика рядом с их флажком?
код за imgs.aspx:
protected void Page_Load(object sender, EventArgs e)
{
var stuId = Request.QueryString["ID"];
if (stuId.Length <= 0)
{
stuId = "100097645"; // If no ID number sent, display default 'image not available' thumbnail.
}
var con = new SqlConnection
{
ConnectionString =
removed for security reasons
};
con.Open();
var sqlCommand = new SqlCommand("Select BINARY_OBJECT FROM BLOBS WHERE OWNER_REF=" + stuId, con);
var reader = sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
reader.Read();
var byteArray = (byte[])reader["BINARY_OBJECT"];
var mstream = new System.IO.MemoryStream(byteArray, 0, byteArray.Length);
var dbImage = System.Drawing.Image.FromStream(new System.IO.MemoryStream(byteArray));
var thumbnailImage = dbImage.GetThumbnailImage(100, 100, null, new IntPtr());
thumbnailImage.Save(mstream, dbImage.RawFormat);
var thumbnailByteArray = new byte[mstream.Length];
mstream.Position = 0;
mstream.Read(thumbnailByteArray, 0, Convert.ToInt32(mstream.Length));
Response.Clear();
Response.BinaryWrite(thumbnailByteArray);
}
код я до сих пор, чтобы отобразить изображение:
private void StudentSelected()
{
string query = "Select distinct (Convert(varchar, PERSON_CODE) + '|' + FORENAME + ' ' + SURNAME) as StudentName, (Convert(varchar, PERSON_CODE) + '|' + FORENAME + '|' + SURNAME) as StudentValue From people where (FORENAME = '" + stuforename + "') and (SURNAME = '" + stusurname + "') and (Convert(varchar,PERSON_CODE) = '" + stuid + "')";
StudentCheckBoxData.Merge(GetData(query));
cbSelection.DataSource = StudentCheckBoxData;
cbSelection.DataTextField = "StudentName";
cbSelection.DataValueField = "StudentValue";
cbSelection.DataBind();
try
{
foreach (ListItem checkBox in cbSelection.Items)
{
checkBox.Text += string.Format("<img src = \"{0}\" /> ", GetImageUrl(checkBox.Text.Split('|')[0]));
}
}
catch
{
//Display Error Here
}
}
private string GetImageUrl(string id)
{
return string.Format("http://bceforms/Contact/imgs.aspx?ID=", id);
}
Проблема на данный момент он показывает границу, но изображение, которое появляется a Thumbnail не найденное изображение, когда у меня была эта проблема до того, как это было из-за того, что изображение не было привязано к базе данных, но когда я использовал .databind();
в списке флажков, потому что, очевидно, исходный источник данных не имеет изображения, он просто удаляет изображение
Любая помощь будет apprecieated
Отлично работает! Благодаря! –
Добро пожаловать. очень рад помочь. –