Кнопки с кнопочными полями запускают событие, хотя я не сопоставил его ни с какими событиями
Поэтому я пытаюсь реализовать столбец кнопок в моей таблице данных с полем кнопки. Тем не менее, я пока что не сопоставил их ни с одним событием, но по какой-то причине всякий раз, когда я нажимаю одну из кнопок, я полагаю, что это вызывает событие Page_Load. Это, конечно, перезагрузит страницу, но сама страница добавляет дубликат столбца из-за способа его кодирования. Однако я нахожу это странным, потому что всякий раз, когда я обновляю саму страницу, столбцы не дублируются. Возможно, это связано с тем, что при обновлении страницы она начинается с чистого состояния. Независимо от того, кнопки таинственным образом имеют функцию, и я полагаю, что это может мешать функциональности, которую я на самом деле хочу, чтобы она была.
public partial class ViewData : System.Web.UI.Page
{
//will have use for this later
private Member curMember;
//database connection
private SLHSDataContext SLHS_DB = new SLHSDataContext();
private int curStudentIndex;
//useful constant
private const string NUMBER = "Number";
private const string FIRSTNAME = "First Name";
private const string LASTNAME = "Last Name";
private const string AGE = "Age";
private const string EMAIL = "Email";
private const string EDIT = "Edit";
protected void Page_Load(object sender, EventArgs e)
{
CheckMember();
LoadDataTable();
}
функция для LoadDataTable():
void LoadDataTable()
{
//create table
DataTable table = new DataTable();
AddColumnToTable(table);
//query all students
IQueryable<Member> query = from mem in SLHS_DB.Members
where mem.RoleId == (int)Credentials.MemberRole.STUDENT
select mem;
Member[] students = query.ToArray();
//add them to table
curStudentIndex = 0;
foreach (Member student in students)
{
AddRowToTable(table, student);
}
//Add the button column of "Remove"s
ButtonField buttonField = new ButtonField
{
ButtonType = ButtonType.Button,
Text = "Remove",
HeaderText = "Edit",
CommandName = "Remove"
};
gridViewStudent.Columns.Add(buttonField);
//bind data to grid view
gridViewStudent.DataSource = table;
gridViewStudent.DataBind();
}
И обработчик событий, в который я хочу, чтобы он входил (но в настоящее время даже не вводится при нажатии кнопки) при нажатии кнопки выглядит следующим образом:
protected void gridViewStudent_RowCommand(object sender, GridViewCommandEventArgs e)
{
System.Diagnostics.Debug.WriteLine("testing button event");
if (e.CommandName == "Remove")
{
// Retrieve the row index stored in the
// CommandArgument property.
int index = Convert.ToInt32(e.CommandArgument);
System.Diagnostics.Debug.WriteLine(index);
// Retrieve the row that contains the button
// from the Rows collection.
//GridViewRow row = GridView1.Rows[index];
// Add code here to add the item to the shopping cart.
}
}