是否可以从 ASP.net 中的 SQL/MySQL 数据库导入表单的按钮位置?
Posted
技术标签:
【中文标题】是否可以从 ASP.net 中的 SQL/MySQL 数据库导入表单的按钮位置?【英文标题】:Is it possible to import button location of a form from SQL/MySQL database in ASP.net? 【发布时间】:2017-01-04 02:09:20 【问题描述】:我有 2 个问题连续几天都找不到解决方案,真的希望你们中的任何人都可以帮助我。
1。我正在尝试创建一个网站/应用程序,它允许用户设计他们喜欢的软件,并在他们单击完成后,将这些按钮的位置保存在数据库、SQL Server 或 mysql(sql 收藏夹)上。
用户只需将按钮、文本框和组合框拖放到一个空面板中即可。
有了基础,我可以理解类似的东西
Button1 btn1 = new Button1();
在 C# 中,这是我用来创建按钮的方式,但不确定如何在 asp.net + css 中执行类似的操作。
用户完成后,当他点击“保存按钮”时,这些详细信息将输入数据库。
连接到 SQL Server 对我来说很容易,但我无法理解功能、如何设置位置的代码或那些按钮、当页面加载时,那些要进入它们在 SQL 中列出的位置的按钮数据库。是否只能通过编辑 asp.net 中的位置来完成,甚至可以在 stylesheet.css 中完成(如果有任何解决方案可以通过在 CSS 中编辑位置来做到这一点)
2。如何声明一种颜色,然后将其添加到 CSS 中的所有文本框、按钮等。
C# 中的示例代码
var MainColor = Color.Red;
Textbox1.BackgroundColor = MainColor;
有可能吗?
非常感谢您考虑这一点,并提出任何建议
【问题讨论】:
【参考方案1】:您可以设计您的数据库表来模拟您想要提供的项目的 C# 属性。然后,您在运行时使用用户在设计时选择的按钮或文本框的属性来构建您的 UI。如果您构建了一个主键来标识用户以及他们想要使用哪个 UI(如果有多种可能性,可能会以下拉列表的形式提供),那么您可以获得动态构建 UI 所需的数据行。
编辑: 以 ASP.NET 应用程序中的一个简单按钮为例。它将有许多与之相关的属性,但我只会展示一些:
数据类型 身份证 CssClass 身高 文字 宽度在您的应用程序中,您将允许用户将一个按钮拖到页面上,并根据他们认为合适的方式对其进行修改。一旦他们按照他们喜欢的方式获得它,您就可以提供一些方法将该按钮的属性保存到您的数据库中,以便在他们再次启动新页面时调用。
有几种不同的方法来存储数据,但在我工作的地方,我们基本上已经确定了一组键值对,这样您就可以简单地命名您感兴趣的事物(键) ,然后存储与该键关联的值,它们只是 varchar 数据类型,如果您需要存储其他内容,则使用某种方法来解析字符串或对象。所以你的表格可能看起来像这样:
|身份证 |所有者 ID |页面ID |钥匙 |价值 |
因此,要存储按钮的属性,您需要对 Web 方法进行 AJAX 调用来处理字符串(如果您还没有阅读 Dave Ward 撰写的关于如何执行此操作的优秀文章,我强烈推荐它们)。
对于用户 1 使用她的第一页并忽略 ID(因为它应该是一个自动递增值),您的 SQL 语句可能看起来像这样(MySQL 语法示例):
INSERT INTO MyTableName (OwnerID, PageID, Key, Value)
VALUES
(1, 1, "DataType", "Button"),
(1, 1, "ID", "btnSubmit"),
(1, 1, "CssClass", "Buttons"),
(1, 1, "Height", "10"),
(1, 1, "Text", "Submit"),
(1, 1, "Width", "40");
要在运行时构建页面,请在数据库中查询与她的页面关联的项目,例如:
DataTable dt = SELECT * FROM MyTableName WHERE OwnerID = 1 and PageID = 1;
然后使用返回的数据表的数据动态构建页面。
string btnName = new Button();
btnName.ID = dt["ID"].value;
btnName.CssClass = dt["CssClass"].value;
//etc.
这是一个完全未经测试和未编译的示例,它快速创建,让您了解如何继续前进。希望对您有所帮助。
第二次编辑:为了获取按钮(或其他元素)的位置,您将不得不使用 javascript 来获取它们,并通过数据将它们发送到您的后端转移对象(请参阅上面对 Dave Ward 的方法的参考)。 This SO question 应该会让你找到正确的方向来获取元素的坐标。
【讨论】:
我不确定我是否理解您的意思,但谢谢您,我会在谷歌中搜索。 我添加了更多细节,希望能为您提供前进的道路。 感谢 delliottg。它让我想到了如何将它们放入数据库。但这给我留下了几个问题。 1.因为我在css格式的样式表中使用按钮的设计。您为返回的数据编写的代码。应该在 page.aspx.cs 中的页面加载? 2.插入数据时。因为我无法在 (1, 1, "DataType", "Button") 中手动编写它们,但软件会检测到它们,它如何理解哪个是按钮的名称?或高度或它位于哪里? .然而。谢谢你的帖子。真的很有帮助【参考方案2】:我想回答第二个问题,因为 a 并没有真正理解第一个问题。您应该使用 ASPNET 控件中的属性 CssClass 定义一个 CSS 类并将其用于您希望使用的所有控制器。
【讨论】:
在第一个中,我正在尝试制作一个简单的平台。用户可以在平台中拖放按钮的地方,在他完成编辑表单后,然后按保存。这些按钮的位置、颜色和他添加的所有其他内容都保存在数据库的表格中。并且当用户下次登录时,表单将显示为他编辑的样子。在 PageLoad 上,应该是一个代码,用于以与用户之前保存的相同形式添加这些按钮。另外,感谢您编辑我的帖子,看起来我在匆忙中犯了一些错误以上是关于是否可以从 ASP.net 中的 SQL/MySQL 数据库导入表单的按钮位置?的主要内容,如果未能解决你的问题,请参考以下文章
应用程序设置和应用程序构建事件中的 ASP.NET 参数/变量
asp.net mvc c# - 是不是可以从 CodeBehind 中的模型访问视图中文本框的值?