【问题标题】:Not able to see my linkbutton control inside a <td> element无法在 <td> 元素中看到我的链接按钮控件
【发布时间】:2013-12-24 23:17:41
【问题描述】:

请检查下面的代码,我可以从数据库动态生成表。但无法在&lt;td&gt; 元素内显示链接按钮。

基本功能是为数据库表中的每一行生成一个新的&lt;tr&gt;,并添加一个链接按钮。

aspx 代码

<div style="width: 80%;" id="div_post" runat="server">
</div>

Aspx.cs 代码

protected void GetvicharData()
{
    try
    {
        Data_display dd = new Data_display();
        DataTable dt = dd.disp_vichar();
        string in_html = string.Empty;
        int i = 0;
        in_html = "<table style=\"width: 100%;\">";
        foreach (DataRow dr in dt.Rows)
        {
        string str_build = string.Empty;
        i = i + 1;
        string lbDate = Convert.ToDateTime(dr["Date"]).ToString("dd-MMM-yy");
        string lbTopic = dr["Topic_Name"].ToString();
        string desc = dr["Description"].ToString();
        string imgURL = dr["img_url"].ToString();
        string textUrl = dr["txt_url"].ToString();
        str_build = ret_string(lbDate, lbTopic, desc, imgURL, textUrl, i);
        in_html += str_build;
        }
        in_html += "</table>";
        div_post.InnerHtml = in_html;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

public string ret_string(string lbldate, string lbltopic, string description, string imgurl, string texturl, int i)
{
    try
    {
        StringBuilder sb = new StringBuilder();

        sb.Append("<tr><td class=\"post_date\" valign=\"top\" align=\"center\">");
        sb.Append("<asp:Label ID=\"lblDate\" runat=\"server\">" + lbldate + "</asp:Label>");
        sb.Append("</td><td class=\"post_topic\" valign=\"top\" >");
        sb.Append(" <asp:Label ID=\"lblTopic" + i + "\" runat=\"server\">" + lbltopic + "</asp:Label>");
        sb.Append("</td></tr><tr>");
        sb.Append("<td class=\"ShowPic\" valign=\"top\" align=\"right\" ><img src=\"" + imgurl + "\" alt=\"\" id=\"img_post\" /></td>");
        sb.Append("<td class=\"ShowPost\" valign=\"top\" style=\"text-align: justify\">");
        sb.Append("<asp:Panel ID=\"pnlDesc" + i + "\" runat=\"server\"><p>" + description + "</p>");
        sb.Append("</asp:Panel>");
        sb.Append("<div><asp:LinkButton ID=\"lnkbtn" + i + "\" runat=\"server\" Text=\"Read more...\" onclick=\"lnkbtn1_Click\" OnClientClick=\"openNewWin('" + texturl + "')\" />");
        sb.Append("</asp:LinkButton></div></td></tr>");
        string sbuild = sb.ToString();
        return sbuild;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

因为我无法弄清楚为什么当我在浏览器中呈现页面时我的链接按钮显示为隐藏。

【问题讨论】:

  • 非常。我被这段代码困住了。请帮忙。
  • 嗨,我错过了以下code sb.Append(""); ** 但仍然无法正常工作。**

标签: c# visual-studio-2010 html-table asplinkbutton


【解决方案1】:

OK 没测试但是,

sb.Append("</asp:LinkButton></div></td></tr>");

最后一个&lt;/tr&gt; 的开口在哪里? .在我看来,它不见了。

改用sb.Append("&lt;/asp:LinkButton&gt;&lt;/div&gt;&lt;/td&gt;");

如果它仍然存在,请尝试删除最后一个并将其放入 &lt;tr&gt;&lt;td&gt; 中。还要记住一件事。您的 ret_string 方法在一个循环中,因此一次返回 1 行。您可以将 ret_string 方法复制到 asp.net 页面并删除 C# 编码,测试并查看是否返回了成功的行。祝你好运。

也更新

OnClientClick=\"openNewWin('" + texturl + "')\" />");

你试试OnClientClick=\"openNewWin('" + texturl + "')\" &gt;");,因为我注意到你已经关闭了下一行的链接按钮。所以尝试删除/&gt; 看看发生了什么?

【讨论】:

  • 我再次检查了 aspx 代码以确保它工作正常。正如您正确指出的那样,我还更正了代码。请检查我是否遗漏了什么。
  • 问题依然存在。因为我没有足够的回购。我无法在此处发布图片。
  • 然后不接受答案,以便其他人可以提供帮助。如果我有空闲时间,我也会跑去看看。之后可能会更新我的答案。但目前不接受答案,其他人可能有不同的看法。祝你好运
  • 另外,你能否建议任何方法,通过它我可以找到 div 的 ID,而无需使其成为服务器控件。我指的是 ID= div_post
  • 好的,一定会看到的。请检查我的答案,我更新了我刚刚注意到的内容。
【解决方案2】:

对不起,伙计。刚才当我再次看到你的代码时,它看起来很奇怪。我不得不提出另一个答案,因为我在这里没有任何测试手段。就像我在之前的回答中提到的那样,您的 ret_string 方法在循环中。因此,您的 str_build 应该在每个循环实例中保留第 ++ 行或一行。当你这样做时..

foreach (DataRow dr in dt.Rows)
        {
        string str_build = string.Empty;
        .................
        str_build = ret_string(lbDate, lbTopic, desc, imgURL, textUrl, i);
        in_html += str_build;
        }

First str_build; 在第一行中保持一排。但是,当它进入另一轮时,您设置 string str_build = string.Empty; ,这会在 str_build 行中自动清除;如果我清楚地理解您的代码,则持有。我不知道你是如何让你的行返回的,但我建议你把

string str_build = string.Empty;

并把它放在你的循环之前,如下所示

 string str_build = string.Empty;
foreach (DataRow dr in dt.Rows)
{

        .................
        str_build = ret_string(lbDate, lbTopic, desc, imgURL, textUrl, i);
        in_html += str_build;
}

祝你好运。试试看人....

【讨论】:

【解决方案3】:

我得到了答案。请检查代码。

sb.Append("&lt;a href=\"#\" onclick=\"openNewWin('" + texturl + "')\" &gt;Read More...&lt;/a&gt;");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2019-06-28
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多