0

我的问题是我创建了一个方法,它将返回 SQL 表中的所有链接,我可以将它们传递给标签,但我的问题是这些链接不可点击......有没有办法修复这?或者可能是一种将链接传递到表格或其他东西的方法?谢谢!

代码如下所示:

service1.WebServiceLinks a1 = new service1.WebServiceLinks();
        string result = a1.GetLinks();


        Label1.Text = result;

这是 GetLinks() 的代码:

public static string GetLinks()
{

    string query = string.Format("SELECT Link FROM Linkovi");
    StringBuilder result = new StringBuilder();
    try
    {
        conn.Open();
        command.CommandText = query;

        SqlDataReader reader = command.ExecuteReader();

        while (reader.Read())
        {
            result.Append(reader["Link"].ToString());
        }
        reader.Close();
    }
    finally
    {
        conn.Close();
    }
    return result.ToString();
}
4

4 回答 4

3

为什么不使用超链接控件而不是标签?它呈现一个链接(锚元素)。因此您应该能够在其上设置可点击链接。

于 2013-03-15T17:53:09.063 回答
1

由于您可以控制 Web 服务的两端,请帮自己一个忙并返回有意义的信息,而不仅仅是一个巨大的字符串。至少,返回一个集合List<string>

public static List<string> GetLinks()
{
    string query = string.Format("SELECT Link FROM Linkovi");
    List<string> result = new List<string>();
    try {
        conn.Open();
        command.CommandText = query;
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read()) {
            result.Add(reader["Link"].ToString());
        }
        reader.Close();
    } finally {
        conn.Close();
    }
    return result;
}

Repeater然后为了显示结果,使用绑定到结果的控件之类的东西,用 aHyperLink来显示可点击的链接:

<asp:Repeater ID="LinkDisplay" runat="server">
<ItemTemplate>
    <asp:HyperLink ID="TheLink" runat="server"
        NavigateUrl='<%#Container.DataItem%>' Text='<%#Container.DataItem%>'>
    </asp:HyperLink>
</ItemTemplate>
</asp:Repeater>

并将转发器绑定到结果Page_Load

void Page_Load(object sender, EventArgs e) {
    service1.WebServiceLinks a1 = new service1.WebServiceLinks();
    LinkDisplay.DataSource = a1.GetLinks();
    LinkDisplay.DataBind();
}
于 2013-03-15T18:11:13.717 回答
0

将其包裹在锚标签内

<a href="your_link" >text</a>

于 2013-03-15T17:56:18.003 回答
0

你的<label>标签必须有一个for属性,引用有问题id<input>元素。一旦你明白了,<label>对于任何符合标准的浏览器,[应该] 都是热门且可点击的。

这是您想要的那种 HTML 标记的示例:

<li><input id="options-rb1" type="checkbox" name="options" value="1"/><input<label for="options-rb1">&nbsp;Option 1</label></li>
<li><input id="options-rb2" type="checkbox" name="options" value="2"/><input<label for="options-rb2">&nbsp;Option 2</label></li>
<li><input id="options-rb3" type="checkbox" name="options" value="4"/><input<label for="options-rb3">&nbsp;Option 3</label></li>
<li><input id="options-rb4" type="checkbox" name="options" value="8"/><input<label for="options-rb4">&nbsp;Option 4</label></li>

曾经不应该该<label>元素不需要与<input>它所绑定的元素相邻(或什至靠近)。

于 2013-03-15T18:30:21.630 回答