Domanda

Si prega di controllare il codice sotto, dove sono in grado di generare la tabella dinamicamente dal database.Ma non in grado di visualizzare il pulsante LINK all'interno dell'elemento <td>.

La funzione di base è quella di generare un nuovo <tr> per ogni riga nella tabella del database con un pulsante di collegamento aggiunto.

Codice ASPX

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

Codice 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;
    }
}
.

Poiché non sono in grado di capirlo perché il tuo pulsante di collegamento sta mostrando nascosto quando riesco a rendering della pagina nel browser.

È stato utile?

Soluzione 3

I got my answer. Please check the code.

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

Altri suggerimenti

ok non ha testato ma,

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

Dove è l'apertura per l'ultimo </tr>?.Mi sembra che mi manca.

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

Anche se persiste, prova a rimuovere l'ultimo e mettendolo in un <tr><td> invece.Anche una cosa da tenere a mente.Il tuo metodo Ret_String è in un loop e quindi restituisce 1 riga alla volta.È possibile copiare il metodo Ret_String su una pagina ASP.NET e rimuovere le codifiche C #, verificare e vedere se si ha restituito una riga di successo.Goodluck.

Aggiorna anche

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

CN Provi invece generacodicitagcode da quando ho notato chi chiude già il linkButton nella riga successiva.Quindi prova a rimuovere il OnClientClick=\"openNewWin('" + texturl + "')\" >"); e vedere cosa è successo?

Scusa l'uomo.Proprio ora quando vedo di nuovo il tuo codice sembra strano.Ho dovuto mettere un'altra risposta per non ho alcun mezzo di prova qui.Come ho menzionato nella mia risposta precedente, il tuo metodo Ret_string è in un ciclo.Pertanto il tuo STR_Build dovrebbe contenere Row ++ o una riga ad ogni istanza del ciclo.Quando ti piace questo ..

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;
        }
.

Primo str_build; Tieni una riga in prima fila.Tuttavia, quando si tratta di un altro round, impostato string str_build = string.Empty;, questo ha cancellato automaticamente la creazione di CEVR. STR_Build;Sta tenendo se capisco il tuo codice chiaro.Non sono sicuro di come ritorni le tue file, ma ti ho suggerito di estrarre il

string str_build = string.Empty;
.

e mettilo prima del tuo loop come sotto

 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;
}
.

Goodluck.Prova a vedere l'uomo ....

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top