不是高手,给个思路。
没用过2005里的GridView,给不出具体代码。
给CheckBox添加OnCheckedChanged事件
<asp:CheckBox ID="CheckBox1" runat="server" Style="position: relative" OnCheckedChanged="Check_Clicked" />
点击时响应事件
void Check_Clicked(Object sender, EventArgs e)
{
//这里遍历GridView的行,从中找出Check_Clicked被选中的行,
//然后出你需要的那个列的值就OK
//这在03里很容易实现
}
这样下来第0列和模板列里的label都不需要。
没用过2005里的GridView,给不出具体代码。
给CheckBox添加OnCheckedChanged事件
<asp:CheckBox ID="CheckBox1" runat="server" Style="position: relative" OnCheckedChanged="Check_Clicked" />
点击时响应事件
void Check_Clicked(Object sender, EventArgs e)
{
//这里遍历GridView的行,从中找出Check_Clicked被选中的行,
//然后出你需要的那个列的值就OK
//这在03里很容易实现
}
这样下来第0列和模板列里的label都不需要。
概括起来思路这样:
<1>响应OnCheckedChanged事件
<2>确定事件是发生在哪一行
<3>对选中行作处理难点在于怎么确定是哪一行引发的事件。
最简单的方法是遍历所有行,哪个被选中就是哪个,没有选中的不管。我一般配合客户般,实现起来也没那么多回传。
第二种方法我在DataGrid里做过,
void Check_Clicked(Object sender, EventArgs e)
传进来的参数sender就是CheckBox1,它的CheckBox1.Parent.Parent就是DataGrid的行,把它直接转成行取数据就可以了。
<input id="chkID" onclick="ChooseValue(this);" runat="server" value='<%#Eval("id")%>' type="checkbox" />
<input id="hdn<%#Eval("id")%>" type="hidden" value="你要取的值"/>js
function ChooseValue(obj)
{
var idx = document.getElementById(obj).value;
//你要取到的值
document.getElementById('hdn'+idx).value;
}
void Check_Clicked(Object sender, EventArgs e)
{
CheckBox tb = sender as TextBox;
if(tb!=null&&tb.Checked)
{
GridViewRow gvr = tb.Parent.Parent as GridViewRow;
if(gvr!= null)
{
textbox1.Text = gvr.Cells["Memory"].Text;
}
}
}
用客户端方法在简单情况下是可行的。
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Style="position: relative" OnCheckedChanged="Check_Clicked" />
</ItemTemplate>-------不可访问,因为它受保护级别限制。----------------
不允许加事件吗?
{
document.getElementById(textboxID).value =
document.getElementById(grid).controls[LineId].controls[CoulmnId].value;
}
能不能再详细些,如如何在TEXT1=
等如何获得值。后台如何写代码
如何取值
if tt[i].type=="checkbox"
protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
{ CheckBox box;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
box = this.GridView1.Rows[i].FindControl("CheckBox3") as CheckBox; if (box.Checked)
{
Response.Write(GridView1.Rows[i].Cells[0].Text);
}
} }
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
this.TextBox1.Text = GridView1.Rows[i].Cells[2].Text.ToString();
}
} }只能取值一次,我想点击下一个CheckBox显示另一值,另外如何取消CheckBox时,取值为空