日期:2014-05-18  浏览次数:20442 次

如何在datagrid中通过鼠标点击选择一行
datagrid数据源有四列,分别是序号,姓名,科目,成绩,我想通过鼠标点击获取到某一行的序号,然后利用序号来操作删除和编辑等事件,我想写一个onclick的脚本事件,请问怎么写,我对javascript不是很熟悉,请教各位高手了

------解决方案--------------------
帮你顶.赚点分.
------解决方案--------------------
datagrid,你说的功能都是自带的,你自己把属性调好,再触发事件就可以了
------解决方案--------------------
http://dev.csdn.net/develop/article/18/18315.shtm 参考一下
------解决方案--------------------
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//鼠标移动到每项时颜色交替效果
e.Row.Attributes.Add( "OnMouseOut ", "out(this); ");
e.Row.Attributes.Add( "OnMouseOver ", "over(this,this.style.backgroundColor); ");

//双击 事件
e.Row.Attributes.Add( "OnDblClick ", "DbClickEvent(this, ' " + getDb(e.Row.RowIndex) + " ', ' " + e.Row.Cells[2].Text + " ', ' " + dqbm + " '); ");

//设置悬浮鼠标指针形状为 "小手 "
e.Row.Attributes[ "style "] = "Cursor:hand ";

e.Row.Attributes.Add( "onClick ", "ItemOver(this) ");
}
}
------解决方案--------------------
你可以增加一个模板列 放Checkbox
<Columns>
...
<ItemTemplate>
<asp:CheckBox ID= "Check " runat= "server " />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID= "Check " runat= "server " />
</EditItemTemplate>
</asp:TemplateColumn>
...
</Columns>

再放编辑和删除的Button
------解决方案--------------------
你可以增加一个模板列 放Checkbox
<Columns>
...
<ItemTemplate>
<asp:CheckBox ID= "Check " runat= "server " />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID= "Check " runat= "server " />
</EditItemTemplate>
</asp:TemplateColumn>
...
</Columns>

再放编辑和删除的Button,对选中的checkbox操作

------解决方案--------------------
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType itemtype = (ListItemType)e.Item.ItemType;
if((itemtype!=ListItemType.Header)&&(itemtype!=ListItemType.Footer)&&(itemtype!=ListItemType.Separator))
{
LinkButton oSelect = (LinkButton)e.Item.Cells[0].Controls[0];
e.Item.Attributes.Add( "OnClick ",Page.GetPostBackClientEvent(oSelect,String.Empty));
}
}
前提是在datagrid中加个隐藏的选择按钮列,记得放最前面,不然e.item.cells中的序号就要对应改了
------解决方案--------------------
你可能会问如何后台取选中的Checkbox呢?

遍历DataGrid的数据项
for (int i = 0; i < 你的datagridID.Items.Count; i++)
{
chk = (CheckBox)你的datagridID.Items[i].Cells[0].Controls[1];
if (chk.Checked)
{
//具体业务操作
}
}
------解决方案--------------------