Это зависит от того, как должен быть сформулирован URL. Вы могли бы просто использовать разметку:
NavigateUrl="/url.aspx?id=1"
Но это не динамический в малейшей степени и вполне может использовать только примитивный <a>
элемент. Хотя это облегчает его динамическое изменение в коде, если вам нужно, скажем, в PostBack.
Вы также можете просто установить все это в код-за:
link.NavigateUrl = string.Format("/url.aspx?id={0}", id);
В противном случае вы могли бы обеспечить формат разметки и изменить его в код-за (часто бывает полезно, я считаю, для того, чтобы дать ясность в ссылку, просто глядя на разметку - конструкторы и т.д., не нужно найти код-за ссылки, где страница-часть URL определен для того, чтобы увидеть, где он идет):
NavigateUrl="/url.aspx?id={0}"
Тогда изменить его в коде с использованием:
link.NavigateUrl = string.Format(link.NavigateUrl, id);
Конечно, вам также не нужно использовать string.Format
, вы можете объединить строку «изначально» с помощью оператора (т. "/url.aspx?id=" + id.ToString()
).
Есть также другие способы, например, использовать встроенный скрипт в ретрансляторе для доступа к элементу данных, но я не буду приводить пример, поскольку я бы очень редко выступал за это (только в тех случаях, когда это абсолютно необходимо).
спасибо за подробное объяснение ^^ –