我将
-----------------------------------------
<asp:TemplateColumn HeaderText="当前状态">
<ItemTemplate>
<asp:LinkButton ID="btn_State" CommandName="btn_State" CommandArgument='<%# Eval("DetailID") %>'
runat="server" Text='<%# Convert.ToInt32(Eval("State")) == 0 ? "当前无效" : "当前有效"%>' />
</ItemTemplate>
</asp:TemplateColumn>
-------------------------
改成
------------------------
<asp:TemplateColumn HeaderText="当前状态">
<ItemTemplate>
<asp:CheckBox ID="ck_State" AutoPostBack="true" Checked='<%# Convert.ToInt32(Eval("State")) == 0 ? "false" : "true"%>' runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
-----------------------------
请问我要怎么给ck_State添加像CommandName="btn_State"这样的事件
好让我在后台编写代码谢谢
-----------------------------------------
<asp:TemplateColumn HeaderText="当前状态">
<ItemTemplate>
<asp:LinkButton ID="btn_State" CommandName="btn_State" CommandArgument='<%# Eval("DetailID") %>'
runat="server" Text='<%# Convert.ToInt32(Eval("State")) == 0 ? "当前无效" : "当前有效"%>' />
</ItemTemplate>
</asp:TemplateColumn>
-------------------------
改成
------------------------
<asp:TemplateColumn HeaderText="当前状态">
<ItemTemplate>
<asp:CheckBox ID="ck_State" AutoPostBack="true" Checked='<%# Convert.ToInt32(Eval("State")) == 0 ? "false" : "true"%>' runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
-----------------------------
请问我要怎么给ck_State添加像CommandName="btn_State"这样的事件
好让我在后台编写代码谢谢
{
}毕竟是不同的控件 ,
{
}
<asp:CheckBox id=ck_Staterunat="server" OnCheckedChanged="AllDisply" Checked='<%# Convert.ToInt32(Eval("State")) == 0 ? "false" : "true"%>' AutoPostBack="True"></asp:CheckBox>cs:
protected void AllDisply( object sender, System.EventArgs e )
{......}
然后在事件中写:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "btn_State")
{
...
}
}
CheckBox不可以在ItemCommand中执行
而要自己写一个ck_State_CheckedChanged因为我绑定在DataGrid那我怎么知道我点击的是哪一个CheckBox呢
CheckBox没有value属性 我用什么来存ID呢
用Text的话又会看到
有没有像Button一样的 CommandArgument
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox cb1 = e.Item.FindControl().....
// 保存任意值
cb1.Attributes.Add("id",e.Item.ItemIndex);
......
添加cb1.Attributes.Add("IndexID", e.Item.ItemIndex);那么前台得到值为:ck.parentNode.getAttribute('IndexID')那我的后台
btn_ParkTicketGratis_Click
后台如何得到这个值
dg_GratisOrder.Items[ck.??];谢谢
{
string sId = ( (CheckBox)sender).Attributes["IndexID"].value}
<asp:CheckBox id=ck_Staterunat="server" OnCheckedChanged="AllDisply" Checked='<%# Convert.ToInt32(Eval("State")) == 0 ? "false" : "true"%>' AutoPostBack="True"></asp:CheckBox>cs:
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox cb1 = e.Item.FindControl().....
// 保存任意值
cb1.Attributes.Add("rowid",e.Item.ItemIndex);
.....// 后台按钮事件获得datagrid的rowid
protected void AllDisply( object sender, System.EventArgs e )
{
checkbox cb = sender as checkbox;
string rowid = cb.attributes["rowid"].value;
......
}