написать тот же код со страницы aspx, чтобы за кодом на странице cs - PullRequest
0 голосов
/ 30 января 2012

есть ли способ написать этот код со страницы aspx к заднему коду страницы aspx (cs) в asp.net.

<a rel="lightbox" id="userImageLightBox" runat="server" title="profile image">
    <img id="userImage"  runat="server"  width="150"  height="146"  alt="" src=""/>
</a>  

например, если у меня есть код в APSX:

<asp:Label ID="pageProfileHeadName" runat="server" Visible="true"/>

в следующем коде я могу сделать:

    Label label = new Label();
    label.ID = "pageProfileHeadName";
    label.Visible = true;

спасибо

Ответы [ 2 ]

1 голос
/ 30 января 2012

Краткий ответ - да - элемент управления гиперссылкой отображается как <a>, поэтому вы можете сделать это:

Hyperlink a = new Hyperlink();
a.ID = "userImageLightBox";

См. MSDN относительно этого серверного элемента управления:

http://msdn.microsoft.com/en-us/library/k0b15efk(v=vs.71).aspx

Каждый раз, когда элемент управления равен runat=server, это означает, что вы сможете получить к нему доступ из кода aspx за страницей (.cs, .vb и т. Д.). Поэтому, если вы когда-нибудь захотите изменить определенное свойство, например свойство NavigateURL, вы можете это сделать.

a.NavigateURL = "someURL";
0 голосов
/ 30 января 2012

Поскольку вы уже установили атрибут runat="server", вы можете получить доступ к элементам управления HTML в вашем коде через его id:

// *.aspx:
<a id="userImageLightBox" runat="server" ...>
    <img id="userImage" runat="server" ... />
</a> 

// code-behind:
userImageLightBox.Title = "New Title";
userImage.Src = "~/images/profile.png";

// To get or set an attribute like `rel`:
userImageLightBox.Attributes["rel"] = "test";

Обновление: Если вы хотите создать HTML-код из кода, вы можете сделать так, как написал Джон:

HyperLink a = new HyperLink();
  a.ID = "userImageLightBox";
  a.Attributes["rel"] = "lightbox";

  Image img = new Image();
  img.ID = "userImage";
  img.ImageUrl = "img.png";
  img.Width = 150;
  img.Height = 146;

  a.Controls.Add(img);

Да, и, пожалуйста, увеличьте вашу скорость приема.

...