<asp:datagrid id="dgJob" style="Z-INDEX: 101; LEFT:.......
......
<Columns>
<asp:TemplateColumn HeaderText="选择">
<HeaderStyle Font-Size="X-Small" HorizontalAlign="Center" Width="2%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="select" Runat="server" Checked="False" onclick="select(this)"> </asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="JO_No"...................... <script language="javascript">
function select(obj)
{
第一个问题:判断checkbox是否被选中.
第二个问题:取得选中的datagrid中的值.
}
</script>请多多指教!
......
<Columns>
<asp:TemplateColumn HeaderText="选择">
<HeaderStyle Font-Size="X-Small" HorizontalAlign="Center" Width="2%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="select" Runat="server" Checked="False" onclick="select(this)"> </asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="JO_No"...................... <script language="javascript">
function select(obj)
{
第一个问题:判断checkbox是否被选中.
第二个问题:取得选中的datagrid中的值.
}
</script>请多多指教!
这样写不行吧~
在CS,LOAD加:
select.attrib.add("onclick","select(this)");第一个问题:判断checkbox是否被选中.
if (this.checked == true)
alert("选中");
else
alert("不中");
function select(obj)
{
if (obj.checked) //是否被选中
{
//...
} var p = obj.parentElement;
while (p.tagName != "TR")
p = p.parentElement; var inputs = p.all.tags("INPUT");
for (var i=0; i < inputs.length; i++)
alert(inputs[i].value);
}
</script>
你可以看看这个很有用的
很谢谢你的答复,但我想要的是CheckBox被选中的DataGrid中的值呀.而你的答案应该是整个DataGrid的值.
p = p.parentElement; var inputs = p.all.tags("INPUT");will give the TR element for the current row
我已经试过你的代码了,一点反应都没有.
其实我的意思就是,在DataGrid里第一列是一个CheckBox,当选中时,我想要的是该行的其它列的值.function select(obj)
{
if(obj.checked)
{
var p=obj.parentElement;
while(p.tagName!="TR")
p=p.parentElement;
var inputs=p.all.tags("INPUT");
for(var i=0;i<inputs.length;i++)
alert(inputs[i].value);
}
}
.aspx文件中相关代码:
<asp:TemplateColumn HeaderText="选择">
<HeaderStyle Width="30px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<HeaderTemplate>
<asp:CheckBox id="cbSelectAll" runat="server" OnCheckedChanged="cbSelectAll_CheckedChanged" AutoPostBack="True"
ToolTip="全选/全不选"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="ckSelected" Runat="server"></asp:CheckBox><INPUT id=SelectedID type=hidden value='<%# DataBinder.Eval(Container.DataItem, "FCRgnID")%>' name=SelectedID runat="server">
</ItemTemplate>
</asp:TemplateColumn>
.cs文件相关代码:
//获取选中的行ID信息
private System.Collections.ArrayList GetSelectIDList()
{
string sID;
System.Web.UI.WebControls.CheckBox ckSelected;
System.Collections.ArrayList mySelectedIDs=new System.Collections.ArrayList();
foreach(DataGridItem lsDataGridItem in dgChargingRgn.Items)
{
ckSelected=(CheckBox)lsDataGridItem.FindControl("ckSelected");
if(ckSelected.Checked==true)
{
sID=((HtmlInputHidden)lsDataGridItem.FindControl("SelectedID")).Value;
mySelectedIDs.Add(sID);
}
}
return mySelectedIDs;
}
<%@ Page Debug="true" %>
<%@ Import Namespace="System.Data" %><html>
<script language="C#" runat="server">void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
MyDataGrid.DataSource = new string[] {"a","b","c"};
MyDataGrid.DataBind();
}
}</script><body> <h3><font face="Verdana">Specifying Columns in DataGrid</font></h3> <form runat=server> <ASP:DataGrid id="MyDataGrid" runat="server"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox id="txt" Runat="server" Text='<%# Container.DataItem%>'/></ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="select" Runat="server" Checked="False" onclick="selectObj(this)"> </asp:CheckBox></ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid> <asp:Button Text="Click Me" runat="server"/> </form></body>
</html><script language="javascript">
function selectObj(obj)
{
alert(obj.checked);
if (obj.checked) //是否被选中
{
//...
} var p = obj.parentElement;
while (p.tagName != "TR")
p = p.parentElement; var inputs = p.all.tags("INPUT");
for (var i=0; i < inputs.length; i++)
alert(inputs[i].value);
}
</script>
for(i=0;i<objs.length;i++){
if(objs[i].type=="checkbox"){
if(objs[i].checked){
var objTR = objs[i].parentElement; //选中checkbox所在的行
rReturn = getTRValue(objTR); //获取行的值,用“/”分隔
}
}
}function getTRValue(objTR){
r="";
if(objTR != null){
for(j=0;j<objTR.cells.length;j++)
r += objTR.cells(i).innerText + "/";
}
return r;
}
我要的值是:<asp:TextBox id="txt" Runat="server" Text='<%# Container.DataItem%>'/>的值.
czhenq(醉眼看别人成双成对,无人知我黯淡相思流泪) 的思路是对的,但运行起来还是得不到答案.
for (var i=0; i < inputs.length; i++)
if (inputs[i].type == "text")
alert(inputs[i].value);
让我慢慢消化........