Мне нужно добавить кнопку в заголовок сетки, охватывающую два столбца. Я делаю это в коде позади:
if (e.Row.RowType == DataControlRowType.Header)
{
GridView HeaderGrid = (GridView)sender;
GridViewRow HeaderGridRow =
new GridViewRow(0, 0, DataControlRowType.Header,
DataControlRowState.Insert);
TableCell HeaderCell = new TableCell();
HeaderCell.Text = "Name of Person";
HeaderCell.Font.Bold = true;
HeaderCell.ColumnSpan = 1;
HeaderGridRow.Cells.Add(HeaderCell);
HeaderCell = new TableCell();
Button btnHeader = new Button();
btnHeader.UseSubmitBehavior = false;
btnHeader.Click += new EventHandler(this.btnsubmitentry_Click);
btnHeader.Text = "Add New Task";
btnHeader.CommandName = "AddNewTask";
// OnClick="btnsubmitentry_Click"
btnHeader.CssClass = "btn btn-lg btn-default";
btnHeader.OnClientClick = "AddNewTask();";
HeaderCell.Controls.Add(btnHeader);
HeaderCell.ColumnSpan = 2;
HeaderGridRow.Cells.Add(HeaderCell);
grdViewSummary.Controls[0].Controls.AddAt(0, HeaderGridRow);
}
Это создает красивую кнопку, однако мне нужна помощь, как вызвать событие нажатия кнопки на стороне сервера.
<input type="button" name="grdViewSummary$ctl01$ctl00" value="Add New Task" onclick="AddNewTask();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("grdViewSummary$ctl01$ctl00", "", true, "", "", false, true))" class="btn btn-lg btn-default" />
Как видите, я передал onClientClick функции javascript с кодом обратной передачи, но событие не запускается.
<script type="text/javascript">
function AddNewTask() {
alert();
__doPostBack('btnsubmitentry_Click','')
}
</script>
Я также попытался передать обработчик событий и CommandName. Но ни один из них не отображается в источнике просмотра рассматриваемой кнопки. Я буду в порядке с любым подходом; вызывая обратную передачу для функции javascript, или, вызывая процедуру щелчка на стороне сервера напрямую, или вызывает функцию grdiview с именем команды.
RowDataBound
- person fnostro   schedule 04.03.2015