2014-02-02 3 views
0

Я пытаюсь изменить значение ячейки на клик случае флажокКак изменить значение ячейки таблицы на клик случае флажка

Моего размечать код для просмотра сетки выглядит как:

<asp:GridView ID="gvDetails" runat="server" AutoGenerateColumns="False" 
AutoGenerateEditButton="True" Height="144px" 
Width="397px" 
onrowcommand="gvDetails_RowCommand" 
onrowcancelingedit="gvDetails_RowCancelingEdit1" 
onrowediting="gvDetails_RowEditing" onrowupdating="gvDetails_RowUpdating" 
onrowdatabound="gvDetails_RowDataBound"> 
<HeaderStyle BackColor="#df5015" Font-Bold="true" ForeColor="White" /> 
<Columns> 

<asp:TemplateField HeaderText="Call"> 
<ItemTemplate> 
    <asp:CheckBox ID="chkCall" runat="server" AutoPostBack="true" OnCheckedChanged="chkCall_CheckedChanged" /> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#0033CC" /> 
    </asp:TemplateField> 

<asp:BoundField HeaderText="caLLTIME" > 
<HeaderStyle BackColor="#0033CC" /> 
</asp:BoundField> 

</Columns> 
</asp:GridView> 

Мой C# кодирование:

protected void chkCall_CheckedChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = (GridViewRow)((Button)sender).NamingContainer;  
    row.Cells[2].Text = Convert.ToString(DateTime.Now); 
} 

Bu Я получаю эту ошибку:

Unable to cast object of type 'System.Web.UI.WebControls.CheckBox' to 
type 'System.Web.UI.WebControls.Button' 

в первой строке.

Пожалуйста, помогите мне

+2

Прочитайте сообщение об исключении. 'sender' - это тип' Checkbox', поэтому используйте его как 'Checkbox' вместо' Button' – mshsayem

ответ

1

, поскольку отправитель CheckBox вы можете привести его к CheckBox, а затем получить NamingContainer

GridViewRow row = (GridViewRow)((CheckBox)sender).NamingContainer; 
Смежные вопросы