|
Use a StringBuilder to build the string of HTML and then set the string as the Text of a Literal control.
|
|
|
|
|
Thanks, sounds easy.
I need to load other controls (images, text, hyperlinks etc) into different cells of the table.
Can I talk to the cells in the table after setting the string of a literal control or must I build the string with the controls embedded in the string for each record in the query result ?
|
|
|
|
|
why you are not creating table runtime using Table Class?
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
If anyone can show me how to do that for the example table (left Column cells are merged) using the table, tablerow and tablecell objects, or any other method that will work, I will use that method.
|
|
|
|
|
|
You do this by building up the control tree using a Panel for the div and a Table , TableRow 's and TableCell 's for the table.
I have simplified this somewhat (mainly creating a simple method that generates the 100px cell and reusing that throughout) for the purpose of demonstration but here you go:
protected override void OnLoad(EventArgs e)
{
Panel panel = new Panel();
panel.Style.Add(HtmlTextWriterStyle.TextAlign, "left");
Table table = new Table();
table.CellPadding = 1;
table.Style.Add(HtmlTextWriterStyle.Position, "relative");
panel.Controls.Add(table);
TableRow row1 = new TableRow();
TableCell colRowSpan = this.Create100PixelCell("a");
colRowSpan.RowSpan = 4;
row1.Cells.Add(colRowSpan);
row1.Cells.Add(this.Create100PixelCell("b"));
table.Rows.Add(row1);
TableRow row2 = new TableRow();
row2.Cells.Add(this.Create100PixelCell("c"));
table.Rows.Add(row2);
TableRow row3 = new TableRow();
row3.Cells.Add(this.Create100PixelCell("d"));
table.Rows.Add(row3);
TableRow row4 = new TableRow();
row4.Cells.Add(this.Create100PixelCell("e"));
table.Rows.Add(row4);
this.placeHolder.Controls.Add(panel);
}
private TableCell Create100PixelCell(string someContent)
{
TableCell cell = new TableCell();
cell.Style.Add(HtmlTextWriterStyle.Width, "100px");
cell.Controls.Add(new LiteralControl(someContent));
return cell;
}
The line "this.placeHolder..." is an asp:PlaceHolder put into the markup where i want the dynamic content to be placed.
hope it helps.
|
|
|
|
|
Thanks J4amieC
That is exactly what I am looking for.
|
|
|
|
|
you're very welcome. Remember if you want events from any of these dynamically created controls you need to re-create them after postback. It gets tricky quickly.
|
|
|
|
|
Yes, I tried this by creating the table in a Web User control, and found that same problem.
But though it worked in Dev, I could not build the site with the control - all kinds of errors.
So, now I have to resort to a basic dynamic creation of this table.
|
|
|
|
|
Greate Solluation !!!!!
Do you have any answer of my last Question that i have post regarding TextBox?
Any kind of help !!!
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
Well the problem with merging is that due to the fact that the cells has nothing in it the table just ignores it, therefore best way to prevent that is putting something in it like a label, textbox, etc. But if you would like to leave it blank then best option is insert a new line statement
"<br/>".
<!--Made the border to 2 to see the effect-->
<div style="text-align: left">
<table border="2" cellpadding="1" style="position: relative">
<tr>
<td rowspan="4" style="width: 100px">
<br/>
</td>
<td style="width: 100px">
<br/>
</td>
</tr>
<tr>
<td style="width: 100px">
<br/>
</td>
</tr>
<tr>
<td style="width: 100px">
<br/>
</td>
</tr>
<tr>
<td style="width: 100px">
<br/>
</td>
</tr>
</table>
</div>
Then you could try to do it in the code-behind with the feature of Response.Write("...html coding...."), i tried it with a picture
e.g.
This is adding a picture with a string from the database to a checkListBox collection
cblNames.Items.Add((string)readerSet["Nam"] + "<br/><img src=\"" + (string)readerSet["Nam"] + ".jpg\" height=100px width=150px/><br/>");
Any other questions be free to ask, i'll try my best...
|
|
|
|
|
Thanks everyone.
I can continue with your suggestions
|
|
|
|
|
|
Abhijit Jana wrote: Is it possible ?
Yes
Abhijit Jana wrote:
Please give any idea !!!!
Using javascript, detect when the mouse button is released in your textfield and highlight the entire name between ";" symbols. Then optionally do something with the extracted name.
You could go as far as to derive your own textBox control that encapsulates all the functionality you need.
|
|
|
|
|
Thanks for your reply.
Can you give me more details or some sample on this?
Thanks in advance.
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
I guess there is a similar kind of control in AJAX toolkit. You can download that and extend it. It might have most of the functionalities encapsulated.
|
|
|
|
|
sure navaneeth, i will definately check, and will let you know
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
Yeah sure, I rustled this up very quickly for FF. It will not work in IE - I leave that part as an excercise for you
first off, place a textbox in a webpage like so:
<input name="tbTest" type="text" value="Fred Bloggs;Test McTesterson;John Johnson;Bob Shaw" id="tbTest" onMouseUp="extractName(event)" style="width:500px;" />
Then add this javascript to the head:
function extractName(evt)
{
var elem = evt.target ;
var val = elem.value;
var pos = elem.selectionStart;
var start = (val.previousIndexOf(";",pos-1) > -1) ? val.previousIndexOf(";",pos-1)+1 : 0;
var end = (val.indexOf(";",pos) > -1) ? val.indexOf(";",pos) : val.length;
alert( val.substring(start,end) );
elem.selectionStart = start;
elem.selectionEnd = end;
}
String.prototype.previousIndexOf = function(find,start)
{
for(var i=start;i>-1;i--)
{
if(this.substr(i,1) == find)
return i;
}
return -1;
}
hope it helps.
|
|
|
|
|
Thanks for you help.
J4amieC wrote: I leave that part as an excercise for you
Sure... I will try my best. will back to you if any problem.
Thanks again !!!
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
Abhijit Jana wrote: Sure... I will try my best. will back to you if any problem.
And I will tell you to look them up using google.
|
|
|
|
|
Best Regards
-----------------
Abhijit Jana
Microsoft Certified Professional
"Success is Journey it's not a destination"
|
|
|
|
|
Hi all..
I am having a aspx page which has a number of tables having values retrieved from dataset..I have a button in the page..When i click the button only the first two tables alone should be printed..That is i have 10 tables in that page then i need to print them two tables per page(print out page)..so that i will get 5 printout pages each having two tables in it..How to do that.Someone help in this regard..
Thx..
Balaguru
|
|
|
|
|
you could use something like this after the tables
<p style="page-break-before: always"> </p>
soz forgot to tick the checkbox
modified on Wednesday, March 26, 2008 9:07 AM
|
|
|
|
|
Dear .Netman..
Nothing is there in ur reply..Can u resend ur reply...
Regards,
Balaguru
|
|
|
|
|
i have a grid in which values are coming. but this grid displays name of the book in which pfd files are there. namig of the file is not good so i want to change the name of each pdfs.there r 1000's of pdfs,
i am using asp.net,C# ssql server 2005. i copied all the pdfs in a folder then from database m calling the url of the book , then it displays all pdf files,
i want to know is there any way to change the name of pdfs automatically. such dat it should check the content and display name
[I]Example:[/I] xh011.pdf --------------- original name
circute schematics ----------------name in the index .
plz think about it m in need of this solution , i have about 12000 pdfs , so m thinking wat to do???
|
|
|
|