well looks like they only way I could do it was to use placeholder and not write to a div inner html. So the method will now look like this:
private void BuilTab1dMiddleCol(PlaceHolder phHolder, int nhID)
{
string id = "nh_" + nhID;
ImageButton imgBtncheckOff = new ImageButton {ID = id, ImageUrl = "./Images/checkmarkUnchecked.png"};
imgBtncheckOff.Click+= new ImageClickEventHandler(btnTracking_OnClick);
phHolder.Controls.Add(new LiteralControl("<div class=\"w3-col s2a\">"));
phHolder.Controls.Add(new LiteralControl("<div id=\"div_chk \" class=\"w3-container\"> <p>"));
phHolder.Controls.Add(imgBtncheckOff);
phHolder.Controls.Add(new LiteralControl(" </p> </div>"));
phHolder.Controls.Add(new LiteralControl("</div>"));
}