#c# #asp.net #sql #asp.net-ajax
#c# #asp.net #sql #asp.net-ajax
Вопрос:
На самом деле я разрабатываю веб-шаблон с asp.net используя c # и мою строку подключения,:
<connectionStrings>
<add name="NorthwindConnectionString"
connectionString="Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|SecurityTutorials.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
и, используя приведенный ниже код из исходного кода, я подключился к базе данных:
using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SecurityTutorials.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (System.Data.SqlClient.SqlDataAdapter dad = new System.Data.SqlClient.SqlDataAdapter("SELECT [ProductID], [ProductName], [Discontinued] FROM [Alphabetical list of products]", conn))
{
System.Data.DataTable test = new System.Data.DataTable();
dad.Fill(test);
ListView1.DataSource = test;
ListView1.DataBind();
}
}
Я использую listview, и я хочу получить доступ к данным из базы данных, прежде чем привязывать данные с помощью ListView1.DataBind(); и переформатировать данные и установить их как label.text внутри listview. в настоящее время я использую приведенный ниже код для отображения данных метки:
<td>
<asp:Label ID="lblProdID" runat="server"
Text='<%# Eval("ProductID") %>' />
</td>
<td>
<asp:Label ID="lblProdName" runat="server"
Text="<%# Eval("ProductName") %>" />
</td>
<td>
<asp:Label ID="cbDiscontinued" runat="server"
Text='<%# Eval("Discontinued") %>' />
</td>
но я хочу удалить <%# Eval(«ProductID») %> и два других, а также установить label.text из исходного кода.
ценю ваше внимание.
Ответ №1:
Используйте следующий обработчик событий в исходном коде:
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
// Display the e-mail address in italics.
Label lblProdID = (Label)e.Item.FindControl("lblProdID");
// Here, lblProdID contains your data ProductID as text, change to "My Text"
lblProdID.Text = "My Text";
DataRowView rowView = e.Item.DataItem as DataRowView;
string myProductID = rowView["ProductID"].ToString();
// Here, you can access your data
}
}
Подключите этот обработчик событий к вашему listview:
<asp:ListView ID="ListView1" runat="server" OnItemDataBound="MyListView_ItemDataBound" />
Ответ №2:
В ListView есть событие ItemDataBind, которое вызывается каждый раз, когда записи привязываются по дате к шаблону ListView. Создайте обработчик even и внутри него
Используйте e.Item.Свойство DataItem, чтобы получить ссылку на привязываемый объект, а затем продолжить и выполнить форматирование по своему усмотрению.