从innerHTML中获取name属性
本文关键字:name 属性 获取 innerHTML | 更新日期: 2023-09-27 18:25:55
我将内部Html保存在表单表中的Html字段中,并在代码隐藏中获取内部Html,如下所示,我想在代码隐藏的innerHTML中实现名称属性(内部Html有输入类型元素,每个输入类型都有一个名称属性,我想获取这些名称属性)。这样做可能吗
例如< <input name="LastName" type="text" id="LastName">
C#方法
protected void GetFormHTML()
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
cmd = new SqlCommand("select * from Forms where FormId='" +
Request.QueryString["ID"].ToString() + "'", con);
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
lblFormName.Text = dr["Name"].ToString();
DivHTML.InnerHtml = dr["HTML"].ToString().Trim();
}
dr.Close();
cmd.Dispose();
con.Close();
}
听起来您正试图解析存储在数据库中的HTML字符串。你需要一个库,例如HTML敏捷包。
至少Convert.ToInt32(Request.QueryString["ID"].ToString())或更好,请使用ADO.NET参数。
看起来这个问题以前可能已经得到了回答。Html 5不是xml。所以可能需要确认这个库可以使用它。
在C#中解析html的最佳方法是什么?
我不知道你在使用什么类型的SQL,但必须注意这个操作:
if (dr.HasRows)
{
dr.Read();
...
}
例如:SQLite正在使用队列,如果没有完全查询然后在将来的某个时候抛出异常,当您想要执行其他查询,但之前没有进行完全查询时。更好的方式:
if(dr.HasRows)
{
while(dr.Read())
{
...
}
}
或者,如果您只希望first item
在sql查询中使用LIMIT
,或者通过以下方式:
if(dr.HasRows)
{
bool IsFirst = true;
while(dr.Read())
{
if(IsFirst)
{
...
IsFirst = false;
}
}
}
但每次都使用while(dr.Read()),而不是其他方式。
与其使用标准HTML表单输入元素,为什么不使用ASP.NET控件呢。您所要做的就是将"runat=server"属性放入现有的表单输入元素中,然后您就可以从CodeBehind引用您想要的所有内容。
顺便说一句,有很多更好的方法可以实现你想要做的事情。我现在可以喋喋不休地说一大堆。这些都没有特定的顺序,都涉及到你需要完成的事情的各个方面。也就是说,这些建议并不是为了让你从中挑选一个。这些是编程和/或.NET框架解决方案的集合,每个解决方案都可以完成不同的任务。您可以使用它们的组合,也可以仅使用一个。一些你可以用来增强你已经做过的事情。使用LINQ而不是内联SQL(或者内联SQL以外的任何东西)将是一个良好的开端。
- 数据绑定
- LINQ
- ORM-实体框架
- 用"using"语句替换现有的打开/关闭连接
还有很多其他方法可以做你想做的事情。这些只是一些概念/想法,在对你已经拥有的东西做更多的工作之前,你绝对应该研究一下。