怎样将html动态生成的表格中的内容存储到数据库,多谢帮忙!!!

志在千里 2012-10-17 09:53:48
问题描述:我把xml中的文件读取到html中的table里了(xml文件是经常变的),现在要把表格里只要是checkbox选中的行都要存入到数据库sql server中,不知道该怎么处理,请路过的朋友帮忙十分感谢。。。
html读取xml数据到table里的代码为:
<xml id="dso2" src="/Configs/XML_FlowStep.xml"></xml>
<table id="flowtbl" datasrc="#dso2" class="table">
<thead>
<th align="left">
<input type="checkbox" class="all" />
步骤选择
</th>
<th>
步骤编号
</th>
<th>
步骤名称
</th>
<th>
是否审批
</th>
</thead>
<tr>
<td>
<input type="checkbox" class="chk1" value="11" />
</td>
<td>
<span datafld="ID"></span>
</td>
<td>
<span datafld="name"></span>
</td>
<td>
<input type="checkbox" class="chk" /><input type="text" />
</td>
</tr>
</table>

xml代码为:
<?xml version="1.0" encoding="utf-8" ?>
<flow>
<step>
<ID>01101</ID>
<name>项目1</name>
</step>
<step>
<ID>01102</ID>
<name>项目2</name>
</step>
<step>
<ID>02101</ID>
<name>项目3</name>
</step>
<step>
<ID>02102</ID>
<name>项目4</name>
</step>
<step>
<ID>01103</ID>
<name>项目5</name>
</step>
<step>
<ID>01104</ID>
<name>项目6</name>
</step>
<step>
<ID>01105</ID>
<name>项目7</name>
</step>
<step>
<ID>01106</ID>
<name>项目8</name>
</step>
</flow>

读入xml文件html表格生成多行,运行页面右键查看源代码其代码为:
<TABLE id=flowtbl dataSrc=#dso2 class=table>
<THEAD>
<TR jQuery1350481007593="6">
<TH align=left><INPUT class=all type=checkbox> 步骤选择 </TH>
<TH>步骤编号 </TH>
<TH>步骤名称 </TH>
<TH>是否审批 </TH></TR></THEAD>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>01101</SPAN></TD>
<TD><SPAN dataFld=name>项目1</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="9"><INPUT disabled type=text jQuery1350481007593="8"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>01102</SPAN></TD>
<TD><SPAN dataFld=name>项目2</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="11"><INPUT disabled type=text jQuery1350481007593="10"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>02101</SPAN></TD>
<TD><SPAN dataFld=name>项目3</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="13"><INPUT disabled type=text jQuery1350481007593="12"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>02102</SPAN></TD>
<TD><SPAN dataFld=name>项目4</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="15"><INPUT disabled type=text jQuery1350481007593="14"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>01103</SPAN></TD>
<TD><SPAN dataFld=name>项目5</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="17"><INPUT disabled type=text jQuery1350481007593="16"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>01104</SPAN></TD>
<TD><SPAN dataFld=name>项目6</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="19"><INPUT disabled type=text jQuery1350481007593="18"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>01105</SPAN></TD>
<TD><SPAN dataFld=name>项目7</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="21"><INPUT disabled type=text jQuery1350481007593="20"> </TD></TR></TBODY>
<TBODY>
<TR>
<TD><INPUT class=chk1 value=11 type=checkbox> </TD>
<TD><SPAN dataFld=ID>01106</SPAN></TD>
<TD><SPAN dataFld=name>项目8</SPAN></TD>
<TD><INPUT class=chk type=checkbox jQuery1350481007593="23"><INPUT disabled type=text jQuery1350481007593="22"> </TD></TR></TBODY></TABLE>
<TABLE>
<TBODY>
<TR>

现在想把只要是checkbox选中的行记录存入数据库sql server中应该如何操作?多谢!!
...全文
579 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
SEVEN LIU 2013-09-10
  • 打赏
  • 举报
回复
把xml中的文件读取到html中的table里需要什么jar包么
wyumening 2012-10-19
  • 打赏
  • 举报
回复
不好意思发错了 这才是正确的 主要实现的功能是如果当前的复选框选中了,把该行span元素中的记录放到一个隐藏域控件中,然后在后台获取 代码如下:
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
<script type="text/javascript">
function bianli() {
var hiddenvalue = "";
var tbl = document.getElementById("flowtbl");
var tbodys = tbl.tBodies;

for (var i = 0; i < tbodys.length; i++) {
var rows = tbodys[i].rows;
for (var j = 0; j < rows.length; j++) {
var cells = rows[j].cells;
var spans = rows[j].getElementsByTagName("span");
for (var t = 0; t < cells.length; t++) {
var inputs = cells[t].getElementsByTagName("input");
if (inputs.length > 0) {
if (inputs[j].type == "checkbox" && inputs[j].checked == true) {

var tdlist = cells[t].parentNode.childNodes;
for (var d = 0; d < tdlist.length; d++) {

var spans = tdlist[d].getElementsByTagName("span");
if (spans.length > 0) {
for (var k = 0; k < spans.length; k++) {
hiddenvalue += spans[k].innerHTML;

}
}
else {
continue;
}
}
}


}
}
}



}

var hidcontrol = document.getElementById("<% = hidvalue.ClientID%>");
hidcontrol.value = hiddenvalue;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table id="flowtbl" datasrc="#dso2" class="table">
<thead>
<tr jquery1350481007593="6">
<th align="left">
<input class="all" type="checkbox">
步骤选择
</th>
<th>
步骤编号
</th>
<th>
步骤名称
</th>
<th>
是否审批
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">01101</span>
</td>
<td>
<span datafld="name">项目1</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="9"><input disabled type="text"
jquery1350481007593="8">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">01102</span>
</td>
<td>
<span datafld="name">项目2</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="11"><input disabled type="text"
jquery1350481007593="10">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">02101</span>
</td>
<td>
<span datafld="name">项目3</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="13"><input disabled type="text"
jquery1350481007593="12">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">02102</span>
</td>
<td>
<span datafld="name">项目4</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="15"><input disabled type="text"
jquery1350481007593="14">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">01103</span>
</td>
<td>
<span datafld="name">项目5</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="17"><input disabled type="text"
jquery1350481007593="16">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">01104</span>
</td>
<td>
<span datafld="name">项目6</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="19"><input disabled type="text"
jquery1350481007593="18">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">01105</span>
</td>
<td>
<span datafld="name">项目7</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="21"><input disabled type="text"
jquery1350481007593="20">
</td>
</tr>
</tbody>
<tbody>
<tr>
<td>
<input class="chk1" value="11" type="checkbox">
</td>
<td>
<span datafld="ID">01106</span>
</td>
<td>
<span datafld="name">项目8</span>
</td>
<td>
<input class="chk" type="checkbox" jquery1350481007593="23"><input disabled type="text"
jquery1350481007593="22">
</td>
</tr>
</tbody>
</table>
<asp:Button Text="send" OnClientClick="bianli()" runat="server" />
<asp:HiddenField runat="server" ID="hidvalue" />
</form>
</body>


后台:
 protected void Page_Load(object sender, EventArgs e)
{
Response.Write(hidvalue.Value);
}
wyumening 2012-10-19
  • 打赏
  • 举报
回复
以下代码在vs2010下测试通过,主要实现的功能是如果当前的复选框选中了,把该行span元素中的记录放到一个隐藏域控件中,然后在后台获取 代码如下:

<head id="Head1" runat="server">
<title>无标题页</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css/styleInside.css" type="text/css" rel="stylesheet"/>
<script language="javascript" src="../JS/checkbox.js"></script>
<script type="text/javascript">
function Button2_onclick() {
window.location.href = 'Edit.aspx';
}
</script>
</head>
<body bgColor="#0c89a7" leftMargin="0" topMargin="10" marginwidth="0" marginheight="0">
<form id="form1" runat="server">
<div>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="30" colspan="2" align="center" class="shadow1">友情链接管理</td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFFF" style="padding-left:30px; height: 30px;">
搜索:<asp:DropDownList ID="DropDownList3" runat="server">
<asp:ListItem Value="-1">所有类别</asp:ListItem>
</asp:DropDownList> <asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="-1">状态</asp:ListItem>
<asp:ListItem Value="1">可用</asp:ListItem>
<asp:ListItem Value="0">不可用</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Value="-1">样式</asp:ListItem>
<asp:ListItem Value="1">文字链接</asp:ListItem>
<asp:ListItem Value="2">图片链接</asp:ListItem>
</asp:DropDownList>
ID:<asp:TextBox ID="txtID" runat="server" Width="82px"></asp:TextBox>
网站名称:

<asp:TextBox ID="txtSearch" runat="server" Width="81px"></asp:TextBox> 
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Admin/Insideimages/oa_buttom_search.gif" OnClick="ImageButton1_Click" />
<input id="Button2" type="button" value="添加友情链接" onclick="return Button2_onclick()" style="cursor:pointer;" /></td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>

<tr>
<td colspan="2" bgcolor="#FFFFFF" style="padding-left:30px;padding-right:30px; height: 18px;">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%" BorderColor="PowderBlue" BorderStyle="Solid">
<Columns>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="chb" runat="server" /> </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="编号" ItemStyle-HorizontalAlign="Center" >
<ItemTemplate>
<asp:Label ID="id" runat="server" Text='<%#Eval("ID")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="网站名称" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<%# Eval("ClassID").ToString() == "1" ? Eval("Name") : "<img src=" + System.Configuration.ConfigurationSettings.AppSettings["FileUrl"].ToString() + "\\FriendLink\\" + Eval("Logo") + ">"%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="类别" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<%# Eval("ClassID").ToString() == "1"?"文字链接" : "图片链接"%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="OrderNo" HeaderText="排名" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="状态" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<%# Eval("State").ToString() == "1" ? "可用" : "<font color=red>不可用</font>"%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="编辑" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<a href="Edit.aspx?id=<%# Eval("ID") %>">编辑</a> </ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="PowderBlue" />
</asp:GridView> </td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF" style="padding-left:30px;padding-right:30px; height: 32px; width: 36%;">
<a style="cursor:pointer" onclick="javascript:CheckAll(this.form);"></a><a style="cursor:pointer" onclick="javascript:CheckOthers(this.form)"></a><input name="checkbox" type="checkbox" id="Checkbox1" onclick="selcheck(this)" />
全选 
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="删除" /> <asp:Button
ID="Button3" runat="server" Text="可用" OnClick="Button3_Click" /> <asp:Button ID="Button4" runat="server"
Text="不可用" OnClick="Button4_Click" /></td>
<td width="77%" align="right" bgcolor="#FFFFFF" style="padding-left:30px;padding-right:30px; height: 32px;"> 
<asp:Literal ID="Pager" runat="server"></asp:Literal></td>
</tr>
</table>
</div>
</form>
</body>


后台:

 protected void Page_Load(object sender, EventArgs e)
{
Response.Write(hidvalue.Value);
}
志在千里 2012-10-19
  • 打赏
  • 举报
回复
路过的高手请帮忙,多谢了?
志在千里 2012-10-19
  • 打赏
  • 举报
回复
先遍历每一行然后再遍历每一列,把值传给隐藏控件,但这个方法怎样写呢?
志在千里 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
用js能很好的解决问题, 在talbe里遍历input类型为checkbox,判断checkbox是否选中状态,将值赋值给隐藏HiddenField 后台取HiddenField 的值就行。
附录一下之前项目里用到方法,跟lz遇到问题相当类似

HTML code


<table id="divVoteItems" class="d1">
<%
……
[/Quote]多谢learnJSee,我试一下。
遊戲王千金 2012-10-18
  • 打赏
  • 举报
回复
用js能很好的解决问题, 在talbe里遍历input类型为checkbox,判断checkbox是否选中状态,将值赋值给隐藏HiddenField 后台取HiddenField 的值就行。
附录一下之前项目里用到方法,跟lz遇到问题相当类似

<table id="divVoteItems" class="d1">
<%
for (int i = 0; i < dt.Rows.Count; i++)
{
Response.Write("<tr class=\"d3\"><td class=\"d4_3\">" + dt.Rows[i]["Title"].ToString() + "</td><td class=\"d4_2\"><input class=\"TextBox\" value='" + dt.Rows[i]["Value"].ToString() + "'/><input type=\"hidden\" value='" + dt.Rows[i]["Guid"].ToString() + "' /></td></tr>");
}
%>
</table>
<asp:HiddenField ID="hdVoteItems" runat="server" />
<asp:HiddenField ID="hfGuid" runat="server" />


<script type="text/javascript">

function checkSave() {
var str = "";
var hfstr = "";
var obj = document.getElementById("divVoteItems").getElementsByTagName("INPUT");
for (var i = 0; i < obj.length; i++) {
if (obj[i].type == "text") {
if (obj[i].value != "") {
if (str == "") {
str += obj[i].value;
}
else {
str += "," + obj[i].value;
}
}
}
else {
if (obj[i].value != "") {
if (hfstr == "") {
hfstr += obj[i].value;
}
else {
hfstr += "," + obj[i].value;
}
}

}
}
if (str != "") {
document.getElementById("<% = hdVoteItems.ClientID%>").value = str;
}
if (hfstr != "") {
document.getElementById("<% = hfGuid.ClientID%>").value = hfstr;
}

}

</script>
志在千里 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
用ajax还是很简单的
先用js获取被选中的行,读到数据,然后保存
[/Quote]有代码吗?贴一下好吗?多谢!!!!!!!!!!!!!
笨笨熊三号 2012-10-18
  • 打赏
  • 举报
回复
这种情况我用的是Jquery+Ajax,就是在前台提交前把选中的行相应的值拼成字符串都放到一个隐藏控件中,然后在后台拆开就行了
色拉油 2012-10-18
  • 打赏
  • 举报
回复
用ajax还是很简单的
先用js获取被选中的行,读到数据,然后保存
wangyizhi58 2012-10-18
  • 打赏
  • 举报
回复
用js把,提交时,获取表格遍历行,查看每行的td里的checkbox是否选中。
志在千里 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
确定不为null的时候在转换
[/Quote]不为null的时候在转换是什么意思?
快乐的小二兔 2012-10-18
  • 打赏
  • 举报
回复
确定不为null的时候在转换
志在千里 2012-10-18
  • 打赏
  • 举报
回复
是的点击提交后,将选中的记录,插入数据库
志在千里 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 learnjsee 的回复:]
用js能很好的解决问题, 在talbe里遍历input类型为checkbox,判断checkbox是否选中状态,将值赋值给隐藏HiddenField 后台取HiddenField 的值就行。
附录一下之前项目里用到方法,跟lz遇到问题相当类似

HTML code


<table id="divVoteItems" class="d1">
<%
……
[/Quote]请问obj[i]的属性都是有哪些?
志在千里 2012-10-18
  • 打赏
  • 举报
回复
我试了一下还是不行,请根据我的情况帮忙写一下吧,谢谢。
li2422121715 2012-10-17
  • 打赏
  • 举报
回复
点击button,提取选中记录,提交到后台,插入数据库,就可以了吧?

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧