2

我正在为时间表制作一张桌子并将div放在桌子上。人们可以通过单击其中一个来进行新的约会div

单击 div 时,我正在更改活动视图。我需要在 div 中嵌入信息,以便可以在数据库中使用它,并且我想知道单击了哪个 div。

我该如何解决这个问题?这是我的代码:

HtmlGenericControl div = new HtmlGenericControl("DIV");
div.Style.Add(HtmlTextWriterStyle.Width, "60px");
div.Style.Add(HtmlTextWriterStyle.MarginTop, "1px");
div.Style.Add(HtmlTextWriterStyle.BackgroundColor, "green");
div.Style.Add(HtmlTextWriterStyle.Height, last * 40 + "px");
div.Attributes.Add("onclick", "somefunction()");
div.Style.Add("cursor", "pointer");
bul.Controls.Add(div);

bul是一个表格单元格,我在其中放置了一个 DIV。

4

3 回答 3

1

不要忘记在你的 div 服务器控件中设置一个 ID

请参阅此 url,它解释了如何在 javascript 中引用您的服务器控件:

http://encosia.com/2007/08/08/robust-aspnet-control-referencing-in-javascript/

文章摘录:

$get('<%= yourdiv.ClientID %>')


<script>
  alert('yourdiv has a value of: ' + $get('<%= yourdiv.ClientID %>').value);
</script>
于 2012-08-26T15:09:58.760 回答
0
> .answer {
width:20px;
height:20px;
border-color:Red;
border:1px;
background-color:Green;

HtmlGenericControl div = new HtmlGenericControl("DIV");
div.ID = "testDiv";
div.Attributes.Add("class", "answer");
div.Attributes.Add("onclick", "somefunction(this)");
this.Controls.Add(div);  // this code shlould be on pageload

 <script language="javascript">
        function somefunction(obj)
        {
            alert(obj.id);
        }

于 2012-08-26T15:36:31.223 回答
0

恕我直言,您需要重新考虑您的方法。我认为您需要将解决方案分成 3 个不同的部分:

1- 服务器端代码:它将获取有关当前约会的信息,并保存您的受众可能创建的新约会。

2- 标记代码:它应该包含标记的基本构建块,而不是像@Senfo 所建议的那样从服务器端代码生成所有内容。

3-您应该使用一些客户端代码(Javascript)以便在普通视图模式和创建视图模式之间切换。

4-如果你不想使用客户端代码,你应该用 2 个属性装饰你的 div 以便能够在你的 C# 代码中处理它们:

  • ID(每个 div 应该是唯一的)
  • Runat="Server"属性

我知道我的解决方案并不完整,但考虑到这是一道作业题,我认为最好引导你走上正确的道路,而是让你按照这些原则继续前进。我认为你可以做到,你现在应该创建一个更清洁的解决方案。

如果您仍然无法弄清楚,我会尝试给您举个例子,但我的建议是深呼吸,并从您自己开始 :)

于 2012-08-26T15:42:36.343 回答