0

我需要将不同类型的记录存储在通用记录表中。我想在每条记录的列中存储一个 xml 字符串。此 xml 字符串应根据 xml 指定的内容转换为问题形式。例子:

<Questionnaire Form> 
   <Textbox>
       <Label>Question</Label>
       <Answer>Answer To the Question</Answer>
   </Textbox>
   <Textbox>
       <Label>Question</Label>
       <Answer>Answer To the Question</Answer>
   </Textbox>
</Questionnaire Form> 

当问题被回答时,它将通过将其存储到整个 xml 字符串中而被保存回记录中。

我已经看到了许多从 xml 将数据显示到表单上的示例,但似乎无法找到如何从 xml 创建组件(如文本框),能够编辑文本框并将其保存回 xml。这可能非常模棱两可,但如果有人应该指出我正确的方向,或者只是告诉我你将如何通过从 xml 创建动态组件来进行操作,那将是一个很大的帮助。

我正在使用 vb 在 asp.net 中执行此操作。

提前致谢 !

4

1 回答 1

0

该功能看起来非常简单。以下是我会尝试的一些步骤:

1) 使用标准 .NET 方法读取您的 XML 并解析数据。应该有帮助的课程:

http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspxhttp://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx

因此,在此步骤之后,您将在某些项目列表中获得所有信息。(您可能需要创建自己的类来存储必要的数据)。

2) 将一些 DIV 或 asp:Panel 或其他内容放置到您的 aspx 或 ascx 标记中。然后在 Page_Init 上以编程方式添加新的文本框。http://msdn.microsoft.com/en-us/library/kyt0fzt1(v=vs.100).aspx 使用默认数据初始化它们。(无论 IsPostBack 是真还是假,您都应该添加它们)。不要忘记为生成的输入分配 ID,例如使用如下方法:

private string MakeInputID(int objectID)
{
    return string.Format("input_{1}", objectID);
}

3)那么显然你会有一些按钮来提交答案。附加到它的点击处理程序,在这里您可以通过它们的 ID 访问您的文本框。您可以借助我在步骤 1) 中提到的 DIV 或 Panel 容器的 FindControl 方法找到文本框。http://msdn.microsoft.com/en-us/library/486wc64h.aspx 您将需要相同的方法 MakeInputID 来获取控件的 ID 并将其传递给 FindControl 方法。

于 2013-06-19T13:55:19.470 回答