C# 无法在a中看到我的linkbutton控件<;td>;要素
请检查下面的代码,我可以从数据库中动态生成表。但无法在C# 无法在a中看到我的linkbutton控件<;td>;要素,c#,visual-studio-2010,html-table,asplinkbutton,C#,Visual Studio 2010,Html Table,Asplinkbutton,请检查下面的代码,我可以从数据库中动态生成表。但无法在元素内显示链接按钮 基本功能是为数据库表中的每一行生成一个新的,并添加一个链接按钮 Aspx代码 <div style="width: 80%;" id="div_post" runat="server"> </div> Aspx.cs代码 protected void GetvicharData() { try { Data_display dd = new Data_displ
元素内显示链接按钮
基本功能是为数据库表中的每一行生成一个新的
,并添加一个链接按钮
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;
}
}
受保护的void GetvicharData()
{
尝试
{
数据显示dd=新数据显示();
数据表dt=dd.disp_vichar();
字符串in_html=string.Empty;
int i=0;
in_html=“”;
foreach(数据行dr在dt.行中)
{
string str_build=string.Empty;
i=i+1;
字符串lbDate=Convert.ToDateTime(dr[“Date”]).ToString(“dd-MMM-yy”);
字符串lbTopic=dr[“Topic_Name”]。ToString();
字符串desc=dr[“Description”].ToString();
字符串imgURL=dr[“img_url”].ToString();
字符串texturel=dr[“txt_url”].ToString();
str_build=ret_字符串(lbDate、lbTopic、desc、imgURL、textUrl、i);
in_html+=str_build;
}
在_html+=“”;
div_post.InnerHtml=in_html;
}
捕获(例外情况除外)
{
掷骰子;
}
}
公共字符串返回字符串(字符串lbldate、字符串lbltopic、字符串描述、字符串imgurl、字符串纹理、int i)
{
尝试
{
StringBuilder sb=新的StringBuilder();
某人加上(“”);
某人加上(“+lbldate+”);
某人加上(“”);
sb.追加(“+lbltopic+”);
某人加上(“”);
某人加上(“”);
某人加上(“”);
sb.追加(“”+说明+“”);
某人加上(“”);
某人加上(“”);
某人加上(“”);
字符串sbuild=sb.ToString();
返回sbuild;
}
捕获(例外情况除外)
{
掷骰子;
}
}
当我在浏览器中呈现页面时,我无法理解为什么我的链接按钮显示为隐藏。确定没有测试,但是
sb.Append("</asp:LinkButton></div></td></tr>");
您可以尝试
OnClientClick=\“openNewWin(““+texturl+”)\”>");代码>相反,因为我注意到你已经关闭了下一行的链接按钮。因此,请尝试删除/>
,看看发生了什么 对不起,伙计。刚才当我再次看到你的代码时,它看起来很奇怪。我不得不提出另一个答案,因为我这里没有任何测试手段。正如我在前面的回答中提到的,您的ret_string方法处于循环中。因此,str_构建应该在每个循环实例中保存行++或一行。当你喜欢这个的时候
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;
}
首先stru构建代码>在第一行中保留一行。但是,当它进入下一轮时,您将string str\u 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;
}
祝你好运。试试看,伙计……我得到了答案。请检查代码
sb.追加(“”)代码>非常简单。我被这个代码困住了。请帮忙。嗨,我错过了下面的code
sb.Append(“”;**但它仍然不工作。**我再次检查了aspx代码以确定它是否工作正常。正如你正确指出的那样,我也纠正了代码。请检查我是否遗漏了什么。问题仍然存在。因为我没有足够的回购。我不能在这里张贴图片。那么请不要接受答案,以便其他人可以提供帮助。万一我有空的话,我也会跑去看看。之后我可能会更新我的答案。但目前还不能接受这个答案,其他人可能会有不同的看法。GoodluckAlso,你能推荐一种方法吗?通过这种方法,我可以找到div的ID,而不必将其作为服务器控件。我指的是ID=div\u postOk肯定会看到的。请检查我的回答我更新了我刚刚注意到的内容。如果你看到,我正在清除str\u build
之前,将值存储在另一个字符串中,这样我就不会在运行时丢失值。
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;
}