Georgeakpan13 Ответов: 0

Создание шаблонов удостоверений личности для отображения в веб-форме


Привет,
У меня есть школьный проект, который я должен представить, когда мы вернемся в школу после этой блокировки covid-19. этот проект посвящен созданию шаблонов удостоверений личности на веб-странице с помощью visual studio asp.net веб-форма; этот шаблон даст пользователям доступ к редактированию их имен, добавлению логотипа компании, а также добавлению должности сотрудников в компании.
Я знаю, что это будет огромная нагрузка для меня, но я горю желанием сделать это. Я искал в интернете все возможные материалы и учебные пособия, которые помогут, но я действительно не могу что-то получить, поэтому я использую этот носитель для поиска помощи; если есть что-то вроде сообщений, видеоуроков и т. д., которые помогут мне, пожалуйста, мне нужны указания. Я буду очень благодарна, если мне помогут. Большое спасибо

-Джордж

Что я уже пробовал:

Я пытался сделать это, но это не работает; Это страница отображения (display.aspx)
' class="img-thumbnail" CssClass="card" runat="server" AllowedFileExtensions=".docx, .doc" AlternateText="note" CommandArgument='' CommandName="Edit" />


код за страницей отображения: (display.aspx.cs)
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование системы.Конфигурация;
использование System.Data;
использование System.Web.UI;
используя системы.Веб.Пользовательского интерфейса.WebControls;
используя системы.Веб.Пользовательского интерфейса.WebControls.элемент webPart;
используя системы.Веб.Пользовательского интерфейса.HtmlControls;
используя системы.Данных.Поставщики sqlclient;

общественный разделяемого класса CardsTemplates : система.Веб.Пользовательского интерфейса.Страницы
{
SqlCommand cmd = новая команда SqlCommand();
SqlDataAdapter sda = новый SqlDataAdapter();
DataSet ds = новый набор данных();
// SqlConnection con = новый SqlConnection();

охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
if (!IsPostBack)
{
Биндрепитер();
}
}
public DataTable SelectFromDatabase(string sql, SqlParameter[] параметры)
{
Объект sqlconnection кон = новое sqlconnection("источник данных=(localdb с)\\MSSQLLocalDB;ключевое слово attachdbfilename=|параметр datadirectory|\\Dataregister.МДФ;Комплексная безопасность=истина");
{

using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (parameters != null)
{
cmd.параметры.AddRange(параметры);
}

использование (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = новый DataTable();
ПДД.Заполнить(ДТ);
возврат dt;
}
}
}
}

частный пустотный связующий()
{
строка sql = "Select * from blog";
rptrCards.DataSource = SelectFromDatabase(sql, null);
rptrCards.Привязку();
}

охраняемых недействительными rptrCards_ItemCommand(источник, объект, RepeaterCommandEventArgs е)
{
если (электронная.Имя_команды."Равно" ("Редактирование"))
{
строку ИД = е.CommandArgument.Метод toString();
Ответ.Перенаправление("CardsEdit.aspx?id=" + id);
}

}
}

Это страница редактирования карт (CardsEdit.aspx):





'/>

'CommandName="ChangeImage" Text="Change Image" />




в '>




в '>




'runat="server" Text="Save" />





Это код за страницей редактирования карт (CardsEdit.aspx.cs)
использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование System.Web.UI;
используя системы.Веб.Пользовательского интерфейса.WebControls;
использование System.Data;
используя системы.Данных.Поставщики sqlclient;
использование системы.Диагностика;

общественный разделяемого класса картам : системе.Веб.Пользовательского интерфейса.Страницы
{
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{
строка id = запрос.QueryString["id"];
if (id != null)
{
if (!IsPostBack)
{
BindDetailsView(id);
}
}
}

private void BindDetailsView(string id)
{
строка sql = "Select * From blog where Id = @Id";
Объект sqlparameter[] параметры = новый[] { новый объект sqlparameter("@идентификатор", идентификатор) };
ImageDetails.DataSource = SelectFromDatabase(sql, параметры);
ImageDetails.Привязку();
}

public DataTable SelectFromDatabase(string sql, SqlParameter[] параметры)
{
Объект sqlconnection кон = новое sqlconnection("источник данных=(localdb с)\\MSSQLLocalDB;ключевое слово attachdbfilename=|параметр datadirectory|\\Dataregister.МДФ;Комплексная безопасность=истина");
{

using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (parameters != null)
{
cmd.параметры.AddRange(параметры);
}

использование (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = новый DataTable();
ПДД.Заполнить(ДТ);
возврат dt;
}

}
}
}

охраняемых недействительными ImageDetails_ItemCommand(объект отправителя, DetailsViewCommandEventArgs е)
{
если (электронная.Имя_команды."Равно" ("ChangeImage"))
{
DetailsView dv = (DetailsView)((кнопка)e.CommandSource).NamingContainer;
FileUpload upload = (FileUpload)dv.FindControl("ImageUploader");

строку ИД = е.CommandArgument.Метод toString();
если (загрузить.HasFile)
{
строковое значение newpath = файл сохранения(выгрузки, загрузки.PostedFile);
//Возможно, вам придется удалить предыдущее изображение

//Обновить URL-адрес изображения
строка SQL = "блог обновить набор карт = @карта где ID=@ID и";
Объект sqlparameter[] параметры = новый[] { новый объект sqlparameter("@карта", значение newpath), новый объект sqlparameter("@идентификатор", идентификатор) };
ExecuteNonQuery(sql, параметры);

// Представлению Detailsview Перепривязать
BindDetailsView(id);

}
}
остальное, если (электронная.Имя_команды."Равно" ("Отмена"))
{
Ответ.Перенаправление("display.aspx");
}
остальное, если (электронная.Имя_команды."Равно" ("Сохранить"))
{
DetailsView dv = (DetailsView)((кнопка)e.CommandSource).NamingContainer;
строка titleText = ((TextBox)dv.FindControl("titleTxt")). Text;
строка contentText = ((TextBox)dv.FindControl("contentTxt")). Text;
строку ИД = е.CommandArgument.Метод toString();

//Обновление заголовка и содержимого изображения
строка SQL = "блог обновить набор card_title = @card_title, содержание = @содержимого, где ID=@ID и";
Объект sqlparameter[] параметры = новый[] { новый объект sqlparameter("@card_title", titleText), новый объект sqlparameter ("контент@", contentText), новый объект sqlparameter("@идентификатор", идентификатор) };
ExecuteNonQuery(sql, параметры);

Ответ.Перенаправление("display.aspx");

}
}

public int ExecuteNonQuery(string sql, SqlParameter[] параметры)
{
// -1 означает, что запрос не удался
int result = -1;
Объект sqlconnection кон = новое sqlconnection("источник данных=(localdb с)\\MSSQLLocalDB;ключевое слово attachdbfilename=|параметр datadirectory|\\Dataregister.МДФ;Комплексная безопасность=истина");
{
пробовать
{
против.Открыть();
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (null != параметры)
{
cmd.параметры.AddRange(параметры);
}
результат = cmd.Метод executenonquery();
}
}
catch (SqlException ex)
{
Отлаживать.WriteLine(ex.Метод toString());
}
наконец
{
против.Закрывать();
}

}

возвращаемый результат;
}

private string SaveFile(загрузка FileUpload, файл HttpPostedFile)
{
// Укажите путь для сохранения загруженного файла.
строка imageFolder = "изображения/";
строка savePath = сервер.MapPath(imageFolder);

// Получить имя файла для загрузки.
строка fileName = upload.имя файла;

// Создайте путь и имя файла для проверки на наличие дубликатов.
строки pathToCheck = после + именем;

// Создайте временное имя файла, которое будет использоваться для проверки дубликатов.
строка tempfileName = "";

// Проверьте, существует ли уже файл с
// то же имя, что и загружаемый файл.
если (системы.ИО.Файл.Существует(pathToCheck))
{
int счетчик = 2;
пока (системы.ИО.Файл.Существует(pathToCheck))
{
// если файл с таким именем уже существует,
// префикс имени файла с номером.
tempfileName = счетчик.ToString() + fileName;
pathToCheck = savePath + tempfileName;
счетчик++;
}

fileName = tempfileName;


}

// Добавьте имя файла для загрузки в путь.
savePath += имя файла;

// Вызовите метод SaveAs для сохранения загруженного файла
// файлов в заданном каталоге.
загружать.Сохранить как(с savepath);

возврат imageFolder + fileName;

}
}

MadMyche

И в чем же проблема?
Мы должны посмотреть на пару сотен строк кода и посмотреть, сработает ли это?

Georgeakpan13

Проблема в том, что у меня есть изображения шаблонов ID-карт, которые отображаются с помощью управления ретранслятором, миниатюры и кнопки изображения. но я не знаю, как сделать эти изображения ID-карт редактируемыми, чтобы я мог добавить имя сотрудника и логотип компании

MadMyche

Итак, в двух словах - вам нужно знать, как сделать редактируемый элемент управления ретранслятором?

Georgeakpan13

Да, что я мог бы сделать, но вместо того, чтобы добавить логотип и имя сотрудника, он редактирует полное изображение и подпись, отображаемые в ретрансляторе.
Если позволите, можно ли создать шаблон ID-карты в MS word и сохранить его в виде одного файла web page .docx (который можно редактировать) и сделать его отображаемым, используя его в веб-форме в качестве шаблона ID-карты ?

MadMyche

Я действительно ненавижу слово, когда дело доходит до Интернета

Georgeakpan13

Хорошо, отметил. Но есть ли способ сделать это? Я имею в виду создание шаблонов удостоверений личности в веб-форме в asp.net, что позволит пользователям редактировать его содержимое?

Richard Deeming

То Repeater управление не поддерживает редактирование. Используйте ListView контроль вместо этого.
Класс ListView (System.Web.UI.WebControls) | Microsoft Docs[^]

ZurdoDev

Как уже упоминалось в другом комментарии, я думаю, что все, что вам нужно сделать, это научиться использовать управление ретранслятором.

DerekT-P

George, thanks for being honest about what you're looking for! Some of your "what you've done" code is missing, and even so there's a lot of it - more than people here are likely to be willing to wade through. So yes, you need to research and experiment with how the various repeater controls work; they're not that intuitive! There is a lot of documentation out there, but for my money, the best tutorials are often from 4guysfromrolla.com Their articles walk you through from complete novice level, adding degrees of complexity and functionality one small step at a time. Go there and search for "repeater control", ignore the adverts at the top, and find some articles that best fit what you want to do and your level of understanding. CodeProject is a marvellous resource and has some great articles, but tends to be aimed at those with a firm grounding in their subject who want to drill down to very specific scenarios. The 4Guys site is probably better suited to your needs for now. Hopefully at some point you'll be back here as a professional and contributing yourself. Good luck! [Update - reading your objective again, I'm not convinced that repeaters come into it at all - you'd use a repeater if you need to edit the contents of MULTIPLE ID cards, but if you're editing just one at a time (and you're selecting a single row based on ID from the d/b table in your bind method), then you don't want repeaters - just a simple form will do. I suspect you might have googled "template" and "asp.net" and got misdirected by the results. ]

0 Ответов