清我所有来问大家个问题:如何在客户端获取datagrid中选择的行数据??
gl637 2005-03-25 05:38:09 DataGrid设置:
<asp:datagrid id="dg" runat="server" ShowFooter="False" AutoGenerateColumns="False" CellPadding="4" AllowCustomPaging="True" CssClass="Dg" Width="780">
<SelectedItemStyle CssClass="DgSelectItem"></SelectedItemStyle>
<AlternatingItemStyle CssClass="DgAltItem"></AlternatingItemStyle>
<ItemStyle CssClass="DgItem"></ItemStyle>
<HeaderStyle CssClass="DgHeader" HorizontalAlign="Center" VerticalAlign="Middle">
</HeaderStyle>
<FooterStyle CssClass="DgFooter"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<asp:CheckBox Text="全选" OnClick="javascript:return select_deselectAll(this.checked,this.id);" Runat="server" ID="CheckAll"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox Text="选择" Width="45" OnClick="javascript:return select_deselectAll(this.checked,this.id);" Runat="server" ID="AddThis"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
。。。。
然后在该页面我通过如下脚本来选择行,并在后台获取用户选择的数据。
<script language="JavaScript">
function select_deselectAll(chkVal, idVal)
{
var frm = document.forms[0];
for (i=0; i<frm.length; i++)
{
if (idVal.indexOf ('CheckAll') != -1)
{
if(chkVal == true)
{
frm.elements[i].checked = true;
}
else
{
frm.elements[i].checked = false;
}
}
else if (idVal.indexOf ('AddThis') != -1)
{
if(frm.elements[i].checked == false)
{
frm.elements[1].checked = false;
}
}
}
}
</script>
通过以上的可以进行选择。
在后台处理中:
foreach (DataGridItem i in dg.Items)
{
CheckBox deleteChkBxItem = (CheckBox) i.FindControl ("AddThis");
if (deleteChkBxItem.Checked)
{
count++;//选择的行数
djzt = ((Label)i.FindControl("ZT")).Text;//获取该行数据状态
zddmxid=((Label)i.FindControl("ID")).Text;//获取id
}
}
if(count>1)//警告只能选择一行
{。。。
}
if(djzt!="状态")//查看该状态数据是否可以修改,不可以则返回
{
}
如果可以则弹出新页面进行修改
逻辑就是这样的,不知道哪位大侠能够帮我写个JavaScript脚本,来获取选中的行的ID和行的状态值?小弟刚刚学习,真不知道该怎么处理了。