Как отобразить данные из текстового поля в Gridview, используя общий список (типизированный список)?
Я создал два текстовых поля для ввода FirstName и LastName сотрудника в веб-приложении ASP.NET с использованием C# в Visual Studio 2010. Существует кнопка. когда я нажимаю на него, значения, которые я ввожу в TextBoxes, должны отображаться в Gridview без сохранения этих значений в базе данных. Я уже реализовал это с помощью ArrayList, как показано ниже. Но теперь я хочу реализовать это с помощью Generic List (Typed List). Как я могу это сделать? Можете ли вы предоставить пример кода для выполнения вышеупомянутых функций?
Как я могу настроить код, приведенный ниже, для реализации функциональности с использованием универсального списка (Typed List)?
**
protected void btnTextDisplay_Click(object sender, EventArgs e)
{
ArrayList arr;
if (Session["array"] == null)
{
arr = new ArrayList();
}
else
{
arr = (ArrayList)Session["array"];
}
arr.Add(txtName.Text + "," + txtCity.Text); //store textbox values in the array list
Session["array"] = arr;
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("City");
for (int i = 0; i < arr.Count; i++)
{
string[] arrVal;
arrVal = arr[i].ToString().Split(',');
dt.Rows.Add(arrVal[0], arrVal[1]);
}
gvDisplay.DataSource = dt;
gvDisplay.DataBind();
}
**
1 ответ
Ты можешь использовать List<string>
вместо ArrayList
protected void btnTextDisplay_Click(object sender, EventArgs e)
{
List<string> list;
if (Session["list"] == null)
{
list = new List<string>();
}
else
{
list = (List<string>)Session["list"];
}
list.Add(txtName.Text + "," + txtCity.Text); //store textbox values in the array list
Session["list"] = list;
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("City");
for (int i = 0; i < list.Count; i++)
{
string[] arrVal;
arrVal = list[i].ToString().Split(',');
dt.Rows.Add(arrVal[0], arrVal[1]);
}
gvDisplay.DataSource = dt;
gvDisplay.DataBind();
}
Гораздо лучший подход может быть:
Если вы определяете класс как:
class Employee
{
public string FirstName { get; set; }
public string City { get; set; }
}
а потом:
protected void btnTextDisplay_Click(object sender, EventArgs e)
{
List<Employee> list;
if (Session["list"] == null)
{
list = new List<Employee>();
}
else
{
list = (List<Employee>)Session["list"];
}
list.Add(new Employee() { FirstName = txtName.Text, City = txtCity.Text }); //store textbox values in the array list
Session["list"] = list;
gvDisplay.DataSource = list; //directly bind the list to the grid
gvDisplay.DataBind();
}