|
So you want to internationalize an ASP.NET application based on a database back end?
Why not just DataBind the Text property to a function that retrieves the text from your database? In your Page_Load, just call MyControl.DataBind()
eg:
<asp:Label id='MyControl' Text='<%# GetText('MyControl') %>'></asp:label>
and
Protected Function GetText(ControlName as String) as String
' I know what language the user wants, as I've
' probably stored it in the Session or something. Do whatever I need to
' do to get the text from the database or something. Then Return it.
End Function
--
Ian Darling
"The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky
|
|
|
|
|
This is good and we can use this elsewhere but all the Objects and all the Dim's that are messages and or error code messages are in this table for all languages of out applications. The code below is the code we will be using.
*****************************
sub bindLanguage()
Dim Strconn99 as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\AAA MS Access\POS.mdb;"
Dim Conn99 as new OLEDBConnection(strconn99)
Dim Rdr99 as OLEDBDatareader
Dim Cmd99 as OLEDBCommand
Dim strSQL99 as string
STRSQL99 = "SELECT LANG FROM POS_USRPROFL " & _
" WHERE USERID = '" & UserID & "' "
Cmd99=New OLEDBCommand(strSQL99,Conn99)
Conn99.Open()
Rdr99 = Cmd99.executereader() 'A
while Rdr99.read <> false
LanguageID = rdr99(0)
end while
rdr99.close
conn99.close
if LanguageID = "" then
else
STRSQL99 = "SELECT OBJNM, TXTVAL " & _
" FROM POS_LANGUAGE " & _
" WHERE PAGENM = 'POS_View_Log_Language' " & _
" AND LANGCD = '" & LanguageID & "' "
Cmd99=New OLEDBCommand(strSQL99,Conn99)
Conn99.Open()
Rdr99 = Cmd99.executereader() 'B
while Rdr99.read <> false
Dim exeInstrt as string = Rdr99(0) & " = '" & Rdr99(1) & "'"
exeInstrt = Replace(exeInstrt,"'","''")
' Execute(exeInstrt)
end while
rdr99.close
conn99.close()
end if
end sub
***********************************
What we are looking for is a way to execute a string dynamically.
This is the code that is not working --> Execute(exeInstrt) <--.
We can see other uses for executing a string dynamically.
Do you know of anyway this can be done?
|
|
|
|
|
Junk the idea of executing code like that - it isn't practical. If you want to get all the language strings in one go, store the resultset in a DataTable instead of looping through a DataReader, and then just pull them out of that using the DataBinding mechanism I described earlier for controls, and a straight function call for anything else. You'll need an OLEDBDataAdapter to Fill the DataTable.
A colleague has suggested that you can use the Eval statement if you use JScript.NET as your code behind language, but neither of us recommend this approach, as it's intended for ASP application migration.
--
Ian Darling
"The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky
|
|
|
|
|
OK Thank you for your time and I will look into this Thanks again.
|
|
|
|
|
|
I am developing a project in vb.NET and I am a beginner in this field. I required a code for simple chat server in which multiple clients can be connected (Please keep in mind that I am working on (file any where system). In this chat server the message should move btween client to client and client to the server. So please send me simple code.
Waqar Ahmad Nadeem
|
|
|
|
|
[Edit]
I just noticed that, according to your bio, you have a Masters Degree in Computer Science. So my original response, below, was probably pitched at the wrong level. I assumed you were new to programming, but with a Masters in CS you should have quite a bit of, at least, academic experiece.
[/Edit]
Why not start with a simpler project until you understand the environment you are working in. When I was a beginner programming in BASIC (Sinclair BASIC to be exact) I wrote simple programs like noughts-and-crosses and hangman.
Waqar Nadeem wrote:
I required a code for simple chat server in which multiple clients can be connected
This is quite a complex problem. Tracking mutliple clients is not something a beginner should be handling. Even I get dizzy with the thought of tracking multiple clients in a real time senario - That's what architectures like ASP.NET are good at. They help separate out the different clients so for the majority of the code I write it is like I have one user.
If you really must try to do this then break the problem in to smaller pieces. Then come back and ask questions on the smaller pieces. Questions like "I tried to do X but it didn't work and I got a Y error message. Here is the code I used, can anyone see where I went wrong?" are really good and will get a better response.
--Colin Mackay--
"In the confrontation between the stream and the rock, the stream always wins - not through strength but perseverance." (H. Jackson Brown)
Enumerators in .NET: See how to customise foreach loops with C#
|
|
|
|
|
Has anyone come accross a "Print All" icon? Where can I find one, as I would rather use an exiting icon rather then create one afresh.
|
|
|
|
|
|
can anyone figure out how to get this to work
btn(mstrfind).enabled = true
I need to figure out how i can call different buttons by inserting the names in the mstrfind since vb.net doesn't support controll arrays
Any help whould be greatly appreciated
[]D[][]\/[][]D
|
|
|
|
|
...shot in the dark, just add them to a collection:
dim mCollection as new collection
mCollection.add Button1, Button1.Name ' Add the object using its name as a key
mCollection.add Button2, Button2.Name ' Add another button
mCollection.item("Form1.Button1").Enabled = false ' Disable button1
See? I hope this is a clear enough example. You could get complex with a type safe collection which only accepts controls or you could maybe have a class which inherits from a control container and that might give you additional functionality, but this suggestion is low down dirty and should work.
Chris.
Nursey
|
|
|
|
|
Hi,
I have 4 individual windows controls in a single windows control lib. Is there a way I can assign a unique icon to each of them? Maybe I have to break them into separate projects.
Thanks.
Nursey
|
|
|
|
|
Put the ToolBoxBitmap attribute on each control class:
<ToolboxBitmap(GetType(MyControl), "MyControlBitmap.bmp")>
Include the bitmap you specified ("MyControlBitmap.bmp" in the above example) in the control's resource file, with the name you specified ("MyControlBitmap.bmp" here).
|
|
|
|
|
OK, I have 4 controls, 4 bitmaps all 16x16 using 16 color palette. Two of my controls display their toolbox bitmap and two display the old cog yellow cog wheel. What the heck is going on here.
Here is an example of one of my attributes.
I've rebuilt the assembly, unreferenced and rerefenced it, quit the IDE and gone back in, and everything I can think of.
<toolboxbitmap(gettype(ctlbutton), "ctlbutton.bmp")=""> _
Thanks.
Nursey
|
|
|
|
|
Hi, I'm really new to coding etc (have only had Visual Basic.Net for about two weeks now).
I'm trying to put together a little quiz programme for a friend of mine ( sort of combination of helping him out whilst giving myself something constructive to do to force me to learn the language).
Anyways, I've gotten to the point where I can transition between forms, have varied responses based on the questions the students give and have an output whereby I put their score and some other details ( name, dob correct answers to the questions they got wrong etc) into a text file.
So far all of that works just fine. My problem is that I want the text file to be printed. It is just a simple file called "script.txt" in the bin folder. Anyways, I have two books which purport to teach one how to learn Visual Basic but NEITHER of them actually gives an example of "How to cause a given text file to be printed when a user presses button x."
Could anyone help me out?
I'm currently looking at some sort of horrible workaround where I try to get the .txt file to FileStream into a RichTextBox and then print the text content of the RichTextBox but I know there must be some other way.
ANY help would be hugely appreciated. I've spent a day banging my head against this particular wall and I'd like to learn the answer for next time.
|
|
|
|
|
Fionn wrote:
I'm currently looking at some sort of horrible workaround where I try to get the .txt file to FileStream into a RichTextBox and then print the text content of the RichTextBox but I know there must be some other way.
If it works!?!
You could always transfer it to notepad:
notepad /p c:\myfile.txt
But that's a bit horrible because the notepad window opens as it is printing. Then closes down again.
--Colin Mackay--
"In the confrontation between the stream and the rock, the stream always wins - not through strength but perseverance." (H. Jackson Brown)
Enumerators in .NET: See how to customise foreach loops with C#
|
|
|
|
|
Thanks for the help Colin.
I played around with it some more and eventually figured that it'd be easier to separate the printing to a file and printing to a printer processes entirely and just wrote the file using PrintLine while Printing the page using the e.Graphics.DrawString approach. It seems to work fairly ok.
Still find it amazing that the creators of this could have left out the functionality to just click a button and automatically print a given file.
e.Graphics.DrawString(" Insert text here", MyFont, Brushes.Black, X, Y)
|
|
|
|
|
Fionn wrote:
Still find it amazing that the creators of this could have left out the functionality to just click a button and automatically print a given file.
That's because printing usually ISN'T done with a straight text file, but with files of many different formats containing all kinds of junk like formatting codes and graphics.
RageInTheMachine9532
|
|
|
|
|
Hey Everyone! I'm a rookie at this stuff so I'm seeking help. I've built buttons and huge macros in my excel spreadsheets and I know how to assign buttons to my macros.
Here is where I'm stuck. I just learned how to build userforms with textboxes, buttons, and macros to activate userform. I just can't figure out how to open my userforms in my worksheet without going into the visual basic editor. I would like to learn how to program a button to open my userform in my worksheet. Can anyone please help me. If possible I would like to see a sample of codes. Thank you so much.....
|
|
|
|
|
I can't remember exactly, but in the code you have for a button you can do something like:
MyUserForm.Show() to launch your form... I think!
RageInTheMachine9532
|
|
|
|
|
TO: RageInTheMachine9532
Thank you so much for your input. It worked. Now I can continue on with my project for work.
|
|
|
|
|
No problem!
Thanks!
RageInTheMachine9532
|
|
|
|
|
There has to be an easy way!!!
If a query containing a left join returns a row where records on the right side of the join are not found, dbnulls are returned to the data set. To detect the dbnulls, I am currently changing the code for the dbnull field property in the <datasetname>.vb file.
Isn't there a way to configure the dataset elements so that a dbnull cast exception is not thrown without manually modifying the property code for each field? I would like to be able to specify a null string return for strings, 0 for numerical values, etc.
If anyone has some insight into this, I would appreciate s suggestion.
|
|
|
|
|
I'd say you would be better changing the SQL to return the appropriate value:
SELECT t1.c1 as t1c1, t1.c2 as t1c2, COALESCE(t2.c1, '') as t2c1, COALESCE(t2.c2, 0) as t2c2
FROM ...
t2.c1 is a string
t2.c2 is an integer
For more information look up the index on the SQL Server 2000 books online for COALESCE
--Colin Mackay--
"In the confrontation between the stream and the rock, the stream always wins - not through strength but perseverance." (H. Jackson Brown)
Enumerators in .NET: See how to customise foreach loops with C#
|
|
|
|
|
What script can I use to connect to an AS400 session from Excel?
I can use Excel to input and retrieve data from an IMS session (using Attachmate for Extra) with the following code:
Public Sessions As Object
Public System As Object
Public Sess0 As Object
Sub GetInfo()
Set System = CreateObject("Extra.System")
Set Sessions = System.Sessions
Set Sess0 = System.ActiveSession
Can VB script be used for the same connectivity to an AS 400 session? If so, what is the code for setting the objects?
Buuldawg
|
|
|
|