当前位置: 首页 > 编程语言 > C#

GridView中的动态按钮 – Button.Click事件未触发分享

时间:2023-04-10 12:06:19 C#

C#学习教程:GridView中的动态按钮-Button.Click事件未触发选择一行后,我在所选行中创建一个表。我正在向该表添加按钮。他们的Click事件永远不会被触发。我阅读了有关重新创建按钮和内容的信息,但仍然没有解决问题的运气。谢谢帮助!私有常量字符串ID_BUTTON_DELETE="SUBMIT_DELETE";私有字符串_selected_survey;protectedvoidSurveyGridView_RowCreated(Objectsender,GridViewRowEventArgse){if(e.Row.RowType==DataControlRowType.DataRow&&e.Row.DataItem!=null&&!IsPostBack){字符串调查=((DataRowView)e.Row.DataItem).Row.ItemArray[0].ToString();如果(survey.Equals(_selected_survey)){e.Row.Cells[0].Controls.Clear();//创建表格e.Row.Cells[0].Controls.Add(createSurveyTable(((DataRowView)e.Row.DataItem).Row.ItemArray[0].ToString(),((DataRowView)e.Row.DataItem).Row.ItemArray[1].ToString(),((DataRowView)e.Row.DataItem).Row.ItemArray[2].ToString()));ViewState["row_index"]=Convert.ToString(e.Row.RowIndex);ViewState["survey_id"]=((DataRowView)e.Row.DataItem).Row.ItemArray[0].ToString();六ewState["title"]=((DataRowView)e.Row.DataItem).Row.ItemArray[1].ToString();ViewState["描述"]=((DataRowView)e.Row.DataItem).Row.ItemArray[2].ToString();}}elseif(e.Row.RowType==DataControlRowType.DataRow&&e.Row.DataItem!=null&&IsPostBack){stringrow_idx=(string)ViewState["row_index"];如果(row_idx!=null&&e.Row.RowIndex.Equals(Convert.ToInt32(row_idx))){_selected_survey=(string)ViewState["survey_id"];字符串标题=(字符串)ViewState["标题"];字符串描述=(字符串)ViewState["描述"];e.Row.Cells[0].Controls.Clear();//重新创建表e.Row.Cells[0].Controls.Add(createSurveyTable(_selected_survey,title,description));}}}privateTablecreateSurveyTable(stringsurvey_id,stringtitle,stringdescription){Tabletable=newTable();TableRowrow=newTableRow();TableCellcell=newTableCell();表questions_table=createQuestionsTable(survey_id);cell.Controls.Add(任务离子表);row.Cells.Add(单元格);table.Rows.Add(行);返回表;}privateTablecreateQuestionsTable(stringsurvey_id){//提交行TableRowsubmit_row=newTableRow();TableCellsubmit_cell=newTableCell();submit_button=newButton();submit_button.Text="提交";submit_button.ID=ID_BUTTON_SUBMIT;submit_button.Click+=newEventHandler(submitButton_Click);submit_cell.Controls.Add(submit_button);delete_button=新按钮();delete_button.Text="删除";delete_button.ID=ID_BUTTON_DELETE;delete_button.Click+=newEventHandler(deleteButton_Click);submit_cell.Controls.Add(delete_button);submit_row.Cells.Add(submit_cell);table.Rows.Add(submit_row);返回表;}privatevoidsubmitButton_Click(objectsender,EventArgse){}privatevoiddeleteButton_Click(objectsender,EventArgse)}}//class我不想回答我的问题,但我希望在查询问题时节省任何时间原来错误发生在if条件下:if(e.Row.RowType==DataControlRowType.DataRow&&e.Row.DataItem!=null&&!IsPostBack){//...}elseif(e.Row.RowType==DataControlRowType.DataRow&&e.Row.DataItem!=null&&IsPostBack){//...}e.Row.DataItem!=null错误地出现在两个条件下,而第二个条件IsPostBack等于true,是从未执行过。正确的代码是:&&IsPostBack){//...}尝试分配命令名称并附加到网格的RowCommand事件以侦听按钮点击而不是点击事件。以上就是C#学习教程:GridView中的动态按钮-Button。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: