|
...
"Well, we're getting "F"'d at work. WPF, WCF, and WWF... WTF?" --John Simmons
|
|
|
|
|
So, you want to write a rather complicated piece of software, having no experience in .NET?? And, you want to learn programming, having someone walk you through everything over Yahoo Messenger?? Is that correct??
|
|
|
|
|
this.bindingcontest[dataset,"datamember].postion++;
is it true to go from one record to the next record
thanks;
|
|
|
|
|
Sorry, I just didn't understand your question.
|
|
|
|
|
i am used the wizered to load and show the data from the data base
by drag and drop the table from dataset
and as you know all the control added to the form
i dont want to use nivagater the added automaticaly
i want make button for next,privious,move end ,move start
how can i make it
|
|
|
|
|
abu rakan wrote: I want [to] make button for next, previous, move end, move start
Start by putting buttons on your form.
Give the buttons proper IDs so they can be identified easily in code.
Double click each button will generate a code stub for handling the button event.
By the way, is this a Web application or a Windows application?
|
|
|
|
|
Neither could I, I think he wants to move around in a table, but I have no bloody idea.
|
|
|
|
|
Basically yes. From: BindingManagerBase.Position Property [^]:
Use the Position property to iterate through the underlying list maintained by the BindingManagerBase. To go to the first item, set the Position to 0. To go to the end of the list, set the Position to the value of the Count property minus 1.
The PositionChanged event occurs when the Position property value changes
|
|
|
|
|
thanks
i tried to use inside the button next
this.bindingcontext[dataset,"name of the table"].postion++;
but an error was occured
and thanks
|
|
|
|
|
What was the error?
Most likely you have to use:
this.BindingContext[dataset,"table.column"].Position++;
Also this should refer to an object which is bound to the dataset you use (textbox, label etc).
|
|
|
|
|
Folks,
I have a sharepoint site with a list of servers to which I occassionally need to RDP (remote desktop). I can't get my Sharepoint admins to provide me a web part that will let me just click on the DNS and automatically launch the RDP session with the destination filled in.
So, what I'm looking for is advice on how to import and read the server list, so I can pick my application, environment (dev, cert, prod, etc), function (webserver, app server, db server), and so forth.
I'd prefer not to have to export my data from sharepoint periodically. This app should read it from the live site. Would it some sort of DB connection to Sharepoint? Or flat file? ANyone done stuff like this?
I appreciate your assistance! --pip
|
|
|
|
|
Not completely want you want but this[^] shows how to connect to a SharePoint site and access the list.
only two letters away from being an asset
|
|
|
|
|
Hello I am looking for how to insert a page break in msword using C#. what I need is i have a textfile i want to read the textfile line by line and send it to one table i am able to do that one and then i want to fetch the data from that table and export to word up to this i can achieve it but what i need when ever i found certain text (ex:- programme ) and i need a page break and start on new document . I am not getting any idea i am searching in google but no luck could any one give us some example greatly appreciated. i am putting my code how i am exporting to ms word . I made a dll for word this is my code on button click
public void Exporttoword_Click(object sender, EventArgs e)
{
WORDDLL.WORDDLL wordApp = new WORDDLL.WORDDLL();
//Microsoft.Office.Interop.Word.Application Word = new Microsoft.Office.Interop.Word.Application();
//Microsoft.Office.Interop.Word. Word = new Microsoft.Office.Interop.Word._Document();
DataSet ds = SelectScAppRepository();
string sbContent = "";
sbContent = wordApp.Exporttoword(ds);
Response.Clear();
Response.AddHeader("contentdisposition", "attachment;filename=FileName.doc");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.word";
Response.Write(sbContent.ToString());
Response.End();
}
THIS IS MY DLL CODE:-
using System.Configuration;
using System.Web;
using System.Data.OleDb;
using System.IO;
using System.Data.OracleClient;
using System.Text;
namespace WORDDLL
{
public class WORDDLL
{
public String Exporttoword(DataSet ds)
{
System.IO.StringWriter excelDoc;
// if (File.Exists(fileName)) File.Delete(fileName);
excelDoc = new System.IO.StringWriter();
StringBuilder sbContent = new StringBuilder();
for (int x = 0; x < ds.Tables[0].Columns.Count; x++)
{
sbContent.Append(" " + ds.Tables[0].Columns[x].ColumnName + " ");
}
sbContent.Append(" \r\n");
//Insert the page break.....when it read CUSTOMER SERVICE WORKSHEET
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
for (int j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
{
sbContent.Append(" " + ds.Tables[0].Rows[i][j].ToString() + " ");
}
sbContent.Append("\r\n");
}
return sbContent.ToString();
}
}
}
|
|
|
|
|
check out this[^] article, it shows how to do page breaks and lots of other stuff using Word automation (which you have commented out at the top of your button handler)
|
|
|
|
|
After a discussion yesterday I'm playing around with the idea of a Singleton 'Notifier' class that can be subscribed to application wide. To make this more useable by allowing any type to be passed in event args, I figured generics would be a good idea. The genric TEventArgs<T> : EventArgs is set up and working fine
A generic class for the singleton is not possible as then the instance would be tied to a single type so I've got a generic method that in turn calls
protected virtual void OnNotify<T>(TEventArgs<T> e) { }
Because the class itself isn't generic, I can't figure out how to create a generic event
public event EventHandler<TEventArgs<T>> Notification;
as T isn't yet defined of course. Is there a way?
Failing that, is it possible to raise a specific event that has the type hard coded
(e.g. public event EventHandler<TEventArgs<int>> Notification )
based upon the type of T in the OnNotify method and use the e parameter?
I could be barking up the wrong tree here but I'm sure it should be possible!
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
The short answer is you are not allowed to do that.
The long answer would involve looking into how delegates work under the covers. In general, an event declaration get translated into a delegate class member, an add handler function, and a remove handler function (Reflector should be useful in seeing the gory details). This means that for each possible generic argument that you will use to qualify the event, there would need to be a corresponding delegate member and add/remove functions. This is something the compiler will never be able to do. [Except possibly in a few rare circumstances when the only possible way to call and handle the event is entirely contained within the same library (Yes, there are a lot of qualifiers in that statement. That's the point)]
I would have expected the compiler to let you declare an event with a generic signature in a generic class, but that does not seem to work either. I tried something like this:
public class test<T>
{
public event EventHandler<TEventArgs<T>> Notification;
}
and got a compile error. I expected this to work because I thought the compiler would only have to output one delegate that would then be qualified fully when the generic class is given a type argument, but the compiler disagrees.
|
|
|
|
|
public class test<T>
{
public event EventHandler<TEventArgs<T>> Notification;
} That works for me, not sure why it didn't work for you - but is no good for a singleton unfortunately as T can't be 'dynamic'. Maybe what I thought would be a useful tool isn't going to be possible, or at least simply.
Thanks anyway
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
hmm, just tried it again and it's working now. I must have typed something else and didn't copy/paste into the post.
|
|
|
|
|
I think I got a working version of your second idea. The trick was to use event accessors. The type of the value parameter in the Dictionary should be a list - I took a shortcut so it works only for one subscriber per type
class TEventArgs<T> : EventArgs { public T Value { get; set; } }
class Test
{
Dictionary<Type, object> d = new Dictionary<Type,object>();
public event EventHandler<TEventArgs<int>> MyEvent1
{
add
{
d.Add(typeof(int), value);
}
remove
{
d.Remove(typeof(int));
}
}
public event EventHandler<TEventArgs<string>> MyEvent2
{
add
{
d.Add(typeof(string), value);
}
remove
{
d.Remove(typeof(string));
}
}
public void OnNotify<T>(T t)
{
EventHandler<TEventArgs<T>> del = (EventHandler<TEventArgs<T>> ) d[t.GetType()];
del(this, new TEventArgs<T>() { Value = t });
}
}
static void Main()
{
Test t = new Test();
t.MyEvent1 += new EventHandler<TEventArgs<int>>((sender, args) => Console.WriteLine(args.Value + 1));
t.MyEvent2 += new EventHandler<TEventArgs<string>>((sender, args) => Console.WriteLine(args.Value.Trim()));
t.OnNotify(23);
t.OnNotify("Senthil Rocks ");
The code inside the add and remove accessors is very similar, but the compiler doesn't like if the event declaration has a generic parameter.
|
|
|
|
|
Cool - thanks Senthil, looks good. I'll have a play with it tomorrow. Been coding all night since I got in so I'll be in trouble with the other half if I carry on!
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
|
|
|
|
|
Thats definitely on the right track. I think using a generic nested class is the final piece:
public class TEventArgs< T> : EventArgs<br />
{<br />
public T Value { get; set; }<br />
}<br />
<br />
public static class CoreEventThing<br />
{<br />
private static List< Delegate> handlers = new List< Delegate>();<br />
<br />
public static class TypedEvents< J><br />
{<br />
public static event EventHandler< TEventArgs< J>> Event<br />
{<br />
add { handlers.Add(value); }<br />
remove { handlers.Remove(value); }<br />
}<br />
}<br />
<br />
<br />
public static void Raise< T>(T value)<br />
{<br />
foreach (var d in handlers)<br />
{<br />
if (d is EventHandler< TEventArgs< T>>) <br />
d.DynamicInvoke(null, new TEventArgs< T> {Value = value});<br />
}<br />
}<br />
}<br />
<br />
[STAThread]<br />
public static void Main()<br />
{<br />
CoreEventThing.TypedEvents< int>.Event += ((o, e) => Console.WriteLine(e.Value * 5));<br />
CoreEventThing.TypedEvents< string>.Event += ((o, e) => Console.WriteLine(e.Value));<br />
<br />
CoreEventThing.Raise(5);<br />
CoreEventThing.Raise("Mark rocks more!");<br />
}
|
|
|
|
|
Nice. Couldn't make the leap from (illegal) generic event with unbounded type to static generic inner class. You really do rock more
Have you used this technique before?
|
|
|
|
|
I think the main disadvantage of my technique is that its forced to be static (I can't see an elegant workaround for this in any case). Kinda precludes it from being a component in an IOC scenario. I think my preferred compromise would be just providing a eventerInstance.Subscribe< T>(EventHandler< TEventArgs>> handler) pattern. Pity you can't do generic operator overloading - that would allow the same syntax as delegates.
I wouldn't use this in real code. Closest I've come for simpler things is the command handling and actions in the Composite Application Block, which is mainly for dispatching simple GUI events. If I wanted some serious pub/sub I'd probably end up needing finer differentiation than just event types - so I'd probably be looking at a service bus to handle it.
|
|
|
|
|
Few, perhaps dumb, questions about your idea:
DaveyM69 wrote: any type to be passed in event args
Are the types known to the singleton class or can it be any type, even a class that the singleton isn't aware of?
If the type is known to the singleton, wouldn't this lead to hardcoding the possible types to the singleton implementation thus leading to several different event declarations and subsrciptions (based on type). I understood that this is what you're trying to prevent.
If the type can be unknown, what is it's role in event firing in singleton? Should only those methods be invoked that have subscribed this event with a certain type or is the logic for the type fully in the code that has subscribed the event. If it is the latter, wouldn't it be sufficient to carry the type info in custom eventargs without generics.
|
|
|
|
|
Hi Mika, not dumb questions at all!
Mika Wendelius wrote: can it be any type, even a class that the singleton isn't aware of?
Ideally yes, but using a Singleton, I couldn't find a way of making it work.
Mika Wendelius wrote: If the type is known to the singleton, wouldn't this lead to hardcoding the possible types... this is what you're trying to prevent.
Correct, and correct - hence the question.
Mika Wendelius wrote: wouldn't it be sufficient to carry the type info in custom eventargs without generics
Yes, but I'd have to box/unbox to and from object. I thought it's be nice (if possible) to do it with generics. As you can probably guess, I've not needed/used generics much apart from List<T> so I'm learning as I go a little trying to get this concept to work
I think the only way to do this is to have seperate static instances of each type, instead of one singleton.
To explain more clearly, here's some working code. I've used a winforms app where two forms receive and send notifications. I've used the static Program class to create static instances of Notifier<T> (instead of a singleton) that the notifiction can be done through application wide. Sorry for the long post.
Edit: The code below is improved by creating a GlobalNotifier singleton, and adding the Notifier<T> instance fields and properties to there (instead of Program class) as needed. Still gotta hard code the types somewhere though
using System;
public class TEventArgs<T> : EventArgs
{
private T m_Value;
public TEventArgs(T value)
{
m_Value = value;
}
public T Value
{
get { return m_Value; }
}
}
using System;
public class Notifier<T>
{
public event EventHandler<TEventArgs<T>> Notification;
public void Notify(T value)
{
OnNotify(new TEventArgs<T>(value));
}
protected virtual void OnNotify(TEventArgs<T> e)
{
EventHandler<TEventArgs<T>> eh = Notification;
if (eh != null)
eh(this, e);
}
}
using System;
using System.Windows.Forms;
static class Program
{
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private static Notifier<int> intNotifier = new Notifier<int>();
private static Notifier<string> stringNotifier = new Notifier<string>();
public static Notifier<int> IntNotifier
{
get { return intNotifier; }
}
public static Notifier<string> StringNotifier
{
get { return stringNotifier; }
}
}
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 frm2 = new Form2();
Program.IntNotifier.Notification += new EventHandler<TEventArgs<int>>(IntNotifier_Notification);
Program.StringNotifier.Notification += new EventHandler<TEventArgs<string>>(StringNotifier_Notification);
Program.IntNotifier.Notify(5);
Program.StringNotifier.Notify("This rocks!");
}
void IntNotifier_Notification(object sender, TEventArgs<int> e)
{
Console.WriteLine(e.Value);
}
void StringNotifier_Notification(object sender, TEventArgs<string> e)
{
Console.WriteLine(e.Value);
}
}
using System;
using System.Windows.Forms;
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
Program.IntNotifier.Notification += new EventHandler<TEventArgs<int>>(IntNotifier_Notification);
}
void IntNotifier_Notification(object sender, TEventArgs<int> e)
{
Program.StringNotifier.Notify("Got the integer " + e.Value);
}
}
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Visual Basic is not used by normal people so we're not covering it here. (Uncyclopedia)
modified on Tuesday, January 13, 2009 5:13 AM
|
|
|
|
|