/ / Usercontrol - asp.net, विधियों, नियंत्रणों का उपयोग कर विभिन्न एएसपीएक्स पेज पर कुछ तरीकों को कैसे ट्रिगर करें

Usercontrol - asp.net, विधियों, नियंत्रणों का उपयोग कर विभिन्न एएसपीएक्स पेज पर कुछ तरीकों को कैसे ट्रिगर करें

मेरे पास 3 एएसपीएक्स पेज हैं। प्रत्येक पृष्ठ पर एक उपयोगकर्ता नियंत्रण में एक ईमेल प्लेसहोल्डर है। मैं जो हासिल करना चाहता हूं वह यह है कि जब ग्राहक उपयोगकर्ता नियंत्रण ईमेल प्लेसहोल्डर पर क्लिक करता है, तो किसी विशेष पृष्ठ पर कुछ विधियों को ट्रिगर करना चाहिए।

कोड के लिए नीचे देखें:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using Tangent.Breakingfree;

public partial class uc_ucBottomMenu : System.Web.UI.UserControl
{

public string printUrl { get; set; }
public string emailUrl { get; set; }
public string audioUrl { get; set; }
public bool myDaigram { get; set; }
public bool toolbox { get; set; }

public uc_ucBottomMenu() {

myDaigram = true;
toolbox = true;

}

public Action<object, EventArgs> MyEvent;
protected void Page_Load(object sender, EventArgs e)
{
btnTriggerEvent.Click += new EventHandler(btnTriggerEvent_Click);
}

void btnTriggerEvent_Click(object sender, EventArgs e)
{
MyEvent(sender, e);
}

protected void Page_PreRender(object sender, EventArgs e)
{
Page.ClientScript.RegisterClientScriptInclude("bottomMenu", "../js/jqDock.js");

// bit of an oppositen as always late request from client
// saves going through all pages!!!

phDiagram.Visible = myDaigram;

phToolbox.Visible = toolbox;

if (string.IsNullOrEmpty(printUrl))
{
phPrint.Visible = false;
}
else
{
phPrint.Visible = true;
hplPrint.Attributes.Add("href", printUrl);
if (printUrl.IndexOf("javascript") == -1)
{
hplPrint.Attributes.Add("target", "_blank");
}
}

if (string.IsNullOrEmpty(emailUrl))
{
// quick fix for lloyd to do video guides
// string fileupload = "../client/pdf/test_test.pdf";
phEmail.Visible = true;
//   hplEmail.Attributes.Add("href", "mailto:"+ emailUrl+ "?subject=Planning Your Time Positively &body=Well done for all the effort you have put into using the strategy of planning your time positively &attachement="+ fileupload+"");
hplEmail.Attributes.Add("attachment", "../client/pdf/test_test.pdf");
}
else
{
string fileupload = "../client/pdf/test_test.pdf";
phEmail.Visible = true;
// hplEmail.Attributes.Add("href",emailUrl);
hplEmail.Attributes.Add("href", "mailto:" + emailUrl + "?subject=Planning Your Time Positively &body=Well done for all the effort you have put into using the strategy of planning your time positively. &attachment=" + fileupload + "");

}

if (string.IsNullOrEmpty(audioUrl))
{
phAudio.Visible = false;
}
else
{
phAudio.Visible = true;
hplAudio.Attributes.Add("href", audioUrl);
}
}

protected void imgBtnLogOut_Click(object sender, ImageClickEventArgs e)
{
Helpers.Logout();
}
}

//ASPX page. I want to trigger this method when the email button is clicked, this method generated pdf

protected void CreateSummaryPDF(object sender, EventArgs e)
{
// create all node chart images
//==========Difficult Situation Chart============//

WriteDifficultSituations(true);
IDataReader dr1 = null;
dr1 = LBM.ChartGetSlider(userID, LBM.Slider.DifficultSituations);
Points obj1 = SortToYArray(dr1);
ChartDifficultSituations.SaveImage(Server.MapPath("../images/charts/") + SessionID.ToString() + "_" + LBM.Node.DifficultSituations.ToString() + ".png", ChartImageFormat.Png);
double a = obj1.maxVal;
dr1.Dispose();
//======================End========================//


double[] check = { a };
// set up pdf
IPdfManager objPdf = new PdfManager();

// Create empty document
IPdfDocument objDoc = objPdf.OpenDocument(Server.MapPath("../client/pdf/Progress-summary.pdf"), Missing.Value);
IPdfPage objPage = objDoc.Pages[1];
IPdfFont objFont = objDoc.Fonts["Helvetica-Bold", Missing.Value];

int[] arrX = { 80, 306, 80, 306, 80, 306, 80, 306 };
int[] arrY = { 590, 590, 290, 290, 590, 590, 290, 290 };

int i = 0;

// loop nodes and place on PDF
foreach (string name in Enum.GetNames(typeof(LBM.Node)))
{

// move onto the next page
if (i > 3) {
objPage = objDoc.Pages[2];
}

// add images
IPdfImage objImage = objDoc.OpenImage(Server.MapPath("../images/charts/") + SessionID.ToString() + "_" + name + ".png", Missing.Value);

// Add empty page. Page size is based on resolution and size of image
float fWidth = objImage.Width * 72.0f / objImage.ResolutionX;
float fHeight = objImage.Height * 72.0f / objImage.ResolutionY;

// Create empty param object
IPdfParam objParam = objPdf.CreateParam(Missing.Value);

objParam["x"].Value = arrX[i];
objParam["y"].Value = arrY[i] - fHeight;

objPage.Canvas.DrawImage(objImage, objParam);

objPage.Canvas.DrawText(name, "x=" + arrX[i] + ", y=" + (arrY[i]+50) + "; width=208; height=200; size=11; alignment=center; color=#ffffff", objFont);

i++;

}
String strFileName = objDoc.Save(Server.MapPath("../client/pdf/filledform.pdf"), true);
}
}

इसके अलावा मुझे एक अलग विधि मिल गई हैएएसपीएक्स पेज। जब उस क्लाइंट उस पृष्ठ पर होता है तो मैं उस विधि को ट्रिगर करना चाहता हूं। उपयोगकर्ता नियंत्रण वर्तमान में चालू होने वाले पृष्ठ उपयोगकर्ता के आधार पर सही विधि को ट्रिगर करना चाहिए।

उत्तर:

जवाब के लिए 2 № 1

अगर मैं अच्छी तरह से समझता हूं, तो आपके पास 3 एएसपीएक्स पेज हैं औरएक फॉर्म युक्त केवल एक उपयोगकर्ता नियंत्रण। जब आप उपयोगकर्ता नियंत्रण बटन पर क्लिक करते हैं, तो आप उपयोगकर्ता नियंत्रण वाले पृष्ठ पर एक विधि लॉन्च करना चाहते हैं।

अपने उपयोगकर्ता नियंत्रण में, आप एक नई संपत्ति (एक प्रतिनिधि: कार्य <>) जोड़ सकते हैं, इस तरह:

// अपने उपयोगकर्ता नियंत्रण में

public Action<object, EventArgs> MyEvent;
protected void Page_Load(object sender, EventArgs e)
{
// The button in the usercontrol
btnTriggerEvent.Click += new EventHandler(btnTriggerEvent_Click);
}
// The click event for your button
void btnTriggerEvent_Click(object sender, EventArgs e)
{
// Raise the event (Action<>) when the button is clicked
MyEvent(sender, e);
}

// एएसपीएक्स पेज में विशिष्ट विधि: (उदाहरण के लिए एक सरल)

protected void Page_Load(object sender, EventArgs e)
{
// Trigger is the name of the usercontrol
Trigger.MyEvent = TriggerDefault;
}
public void TriggerDefault(object sender, EventArgs e)
{
// Do whatever you want here
Response.Write("ABOUT PAGE !!!"); // or some other text
}

जवाब के लिए 0 № 2

जब आप ईमेल क्लिक करते हैं और इसे एएसपीएक्स में पकड़ते हैं तो आप उपयोगकर्ता नियंत्रण से एक ईवेंट भेज सकते हैं।