我正在尝试更改复选框点击事件的单元格值
我的网格视图标记代码如下:
<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);
}
我收到此错误:
Unable to cast object of type 'System.Web.UI.WebControls.CheckBox' to
type 'System.Web.UI.WebControls.Button'
在第一行。
请帮帮我
答案 0 :(得分:1)
由于发件人为CheckBox
,您可以将其投放到CheckBox
,然后获取NamingContainer
GridViewRow row = (GridViewRow)((CheckBox)sender).NamingContainer;