2014-01-19 20 views
0

다음과 같이 옵션 태그를 문자열로 반환하는 함수가 있다고 가정 해 보겠습니다. HtmlTextWriter에 문자열을 추가하는 방법 asp.net C# webform

public static string writeDropDownOptionHTML(string tablename, string id_col, string value_col) 
     { 
      StringWriter stringwriter = new StringWriter(); 
      HtmlTextWriter writer = new HtmlTextWriter(stringwriter); 
      DataTable dt1 = BAL.setDropDown(tablename, id_col, value_col); 
      if (dt1.Rows.Count > 0) 
      { 
       foreach (DataRow row in dt1.Rows) 
       { 
        writer.AddAttribute(HtmlTextWriterAttribute.Value, row[0].ToString()); 
        writer.RenderBeginTag(HtmlTextWriterTag.Option); 

        writer.Write(row[1].ToString()); 
        writer.RenderEndTag(); 
       } 
      } 

      return stringwriter.ToString(); 
     } 

는 지금은

public static string writeWalkReverseTableData(DataTable dt1) 
     { 
      StringWriter stringwriter = new StringWriter(); 
      HtmlTextWriter writer = new HtmlTextWriter(stringwriter); 

      if (dt1.Rows.Count > 0) 
      { 
       foreach (DataRow row in dt1.Rows) 
       { 

        writer.RenderBeginTag(HtmlTextWriterTag.Tr); 
        writer.RenderBeginTag(HtmlTextWriterTag.Td); 
        writer.RenderBeginTag(HtmlTextWriterTag.Select); 
        // now i want to call writeDropDownOptionHTML which will return option html code 
        // writer += writeDropDownOptionHTML("xyz","abc","def"); 
        writer.RenderEndTag(); 
        writer.RenderEndTag(); 
        writer.RenderEndTag(); 
       } 
      } 
      return stringwriter.ToString(); 
     } 

enter image description here

가 어떻게 지정된 HtmlTextWriter에 문자열을 추가하려면 다음과 같은 다른 기능을 가지고?

답변

1

나는 이런 식으로, 내가 매개 변수로 writeDropDownOptionHTML에 writeWalkReverseTableData에서 작가을 통과하려는 HtmlTextWriter를 사용하지만 msdn에 따라 당신이

writer.Write(writeDropDownOptionHTML("xyz","abc","def")); 
1

을 할 수 있어야 너무 잘 알고 :

public static void writeDropDownOptionHTML(HtmlTextWriter writer, string tablename, string id_col, string value_col) 
      { 
       DataTable dt1 = BAL.setDropDown(tablename, id_col, value_col); 
       if (dt1.Rows.Count > 0) 
       { 
        foreach (DataRow row in dt1.Rows) 
        { 
         writer.AddAttribute(HtmlTextWriterAttribute.Value, row[0].ToString()); 
         writer.RenderBeginTag(HtmlTextWriterTag.Option); 

         writer.Write(row[1].ToString()); 
         writer.RenderEndTag(); 
        } 
       } 
      } 

public static string writeWalkReverseTableData(DataTable dt1) 
     { 
      StringWriter stringwriter = new StringWriter(); 
      HtmlTextWriter writer = new HtmlTextWriter(stringwriter); 

      if (dt1.Rows.Count > 0) 
      { 
       foreach (DataRow row in dt1.Rows) 
       { 

        writer.RenderBeginTag(HtmlTextWriterTag.Tr); 
        writer.RenderBeginTag(HtmlTextWriterTag.Td); 
        writer.RenderBeginTag(HtmlTextWriterTag.Select); 
        writeDropDownOptionHTML(writer, "xyz","abc","def"); 
        writer.RenderEndTag(); 
        writer.RenderEndTag(); 
        writer.RenderEndTag(); 
       } 
      } 
      return stringwriter.ToString(); 
     } 
+0

다른 작가의 HTML을 주입하는 대신이 방법을 사용합니다. 하지만이 작업을하려면 writer ... public static void writeDropDownOptionHTML (ref HtmlTextWriter writer, string tablename, string id_col, string value_col)의 참조를 전달한 다음 writeDropDownOptionHTML (ref writer, "xyz" , "abc", "def"); – Kevin