Видимый флажок только в последнем ряду Gridview? - PullRequest
2 голосов
/ 26 октября 2010

Возможно ли иметь флажок, который появляется только при редактировании последней строки GridView?

Я пробовал что-то подобное в EditItemTemplate:

<asp:CheckBox ID="chkNextDay" runat="server" 
              ToolTip="Is it a next-day departure?"
              Enabled="true" 
              Checked='<%# DateTime.Parse(Eval("OutHour","{0:d}")).Date >
                           DateTime.Parse(Eval("InHour","{0:d}")).Date  %>'/>

Затем наКод позади, я пытался скрыть его для строк, отличных от последней, например:

protected void grvOutHour_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView grvOutHour = (GridView)this.grvReport.Rows[grvReport.EditIndex].FindControl("grvOutHour");
            TextBox txtBox = (TextBox)grvOutHour.Rows[e.NewEditIndex].FindControl("txtEditOutHour");
            CheckBox nextDay = (CheckBox)grvOutHour.Rows[e.NewEditIndex].FindControl("chkNextDay");
            if (grvOutHour.Rows.Count-1 != e.NewEditIndex)
                nextDay.Visible = false;
        }

Это ПОЧТИ работало, но флажок продолжал отображаться для всех полей, я думаю, потому что RowDataBound снова вызывается AFTER RowEditingэто снова отрисовывает все это: (

Любые предложения?

Спасибо, EtonB.

Ответы [ 3 ]

3 голосов
/ 26 октября 2010

Используйте RowDataBound вместо ...

protected void grvOutHour_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowState == DataControlRowState.Edit)
    {
        GridView grid = (GridView)sender;
        CheckBox nextDay = (CheckBox)e.Row.FindControl("chkNextDay");
        nextDay.Visible = (e.Row.RowIndex == (grid.Rows.Count - 1));
    }
}
0 голосов
/ 26 октября 2010

Вам нужно будет обработать скрытие флажка в событии RowDataBound.

Вам нужно будет определить, какой будет последняя строка, и установить для свойства флажков visible значение true, если это условие, очевидно, верно.

0 голосов
/ 26 октября 2010

Полагаю, это скорее взлом, чем элегантное решение, но я бы просто скрыл другие флажки с помощью JavaScript, если условие выполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...