오늘까지는 일반 텍스트 용으로 작성되어 사용되는 ASP.NET 글 머리 기호 목록 컨트롤이 있습니다. 새로운 디자인 요청은 이러한 항목 중 일부를 하이퍼 링크로 전환하도록 요청합니다. 따라서 글 머리 기호 목록에는 궁극적으로 일반 텍스트 항목과 일부 하이퍼 링크가 포함되어야합니다. DisplayMode = Hyperlink로 변경하면 값을 비워 두더라도 일반 텍스트 여야하는 항목은 여전히 클릭 가능한 링크가됩니다.프로그래밍 방식으로 글 머리 기호 목록에 하이퍼 링크 추가 DisplayMode = 하이퍼 링크
내가 할 수 있다고 생각하는 솔루션 중 하나는 Literal 컨트롤을 사용하고 링크가되어야하는 줄에 HTML (<a href...
)을 사용하는 것입니다. 약간의 오래된 코드를 다시 작업해야하기 때문에 기존의 BulletedList로 할 수 있는지 정말 알고 싶습니다.
편집 : 나는 심각 어디 이것에 대해 아무것도 찾을 수 없습니다, 나는 일반적으로 자신 꽤 좋은 Google 사용자 고려
.
페이지의 코드 숨김에서 :
foreach (SupportLog x in ordered)
{
blschedule.Items.Add(new ListItem(x.Headline, "http://mysite/Support/editsupportlog.aspx?SupportLogID=" + x.SupportLogID));
}
blschedule.DataBind();
그래서 언젠가 다음 10 년 같은 시나리오에서 자신을 발견 하나 또는 두 개의 손실과 혼란 영혼, 여기 아래에 제공되는 우수한 답변을 내 완벽하게 구현입니다
protected void blschedule_DataBound(object sender, EventArgs e)
{
foreach (ListItem x in blschedule.Items)
{
if (x.Value.Contains("http")) //an item that should be a link is gonna have http in it, so check for that
{
x.Attributes.Add("data-url", x.Value);
}
}
}
에서 .aspx 페이지의 머리에서 :
,938 끝에있는 데이터 바인딩이 ---이 필요참고 데이터 바인딩 이벤트에 해당하는
if 문은 "data-url"속성이있는 항목 만 링크로 설정하고 모든 항목을 링크로 변환하지 않도록해야합니다.
감사해야합니다. 그래, 내 최후의 수단은 그것을 Repeater 나 Literal 같은 다른 컨트롤로 바꾸는 것이다. BulletedList를 참조하는 많은 코드가 있기 때문에 나는 단지 BulletedList를 유지할 수 있도록 해킹 정도에 상관없이 솔루션을 찾고 있습니다. – CptSupermrkt
은 "hackiness"방식으로 업데이트되었습니다. – MikeM
고마워요! 나는 당신의 아이디어를 사용하고 일하는 해결책을 구현할 수있었습니다.위의 원래 질문을 세부적인 구현으로 편집했습니다. 다시 한번 감사드립니다. – CptSupermrkt