2012-12-11 46 views
7

मैं पीछे कोड में इस तरह के एक पेजएक बटन onClick ईवेंट में मौजूदा पाठ बॉक्स पाठ मूल्य प्राप्त करें - asp.net

<form runat="server" id="NewForm"> 
    Name: <asp:TextBox ID="Name" runat="server"></asp:TextBox> 
    <asp:Button ID="AddNewName" runat="server" Text="Add" OnClick="AddNewName_Click" /> 
    <asp:Label ID="NewName" runat="server"></asp:Label> 
</form> 

है, मैं एक Page_Load जो पाठ बॉक्स नाम को कोई मान निर्दिष्ट है।

protected void Page_Load(object sender, EventArgs e) 
{ 
    Name.Text = "Enter Your Name Here"; 
} 

फिर बटन पर क्लिक करें AddNewName पर, मैं इसे लेबल में लिखेंगे NewName

protected void AddNewDivision_Click(object sender, EventArgs e) 
{ 
    NewName.Text = Name.Text; 
} 

लेकिन, कोई बात नहीं क्या मैं नाम पाठ बॉक्स में इनपुट, लेबल केवल प्रदर्शित करता है "दर्ज आपका यहां नाम "। यह नाम टेक्स्टबॉक्स में वास्तविक सामग्री के लिए कभी अपडेट नहीं होता है। मैं इस कोड के साथ क्या गलत कर रहा हूँ?

उत्तर

16

समस्या यह है कि आप हमेशा Page_Load में परिवर्तित मूल्य को ओवरराइट कर रहे हैं। इसके बजाय, जाँच IsPostBack संपत्ति:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
     Name.Text = "Enter Your Name Here"; 
} 
+1

Awesone !!!!! यही मेरी समस्या का हल है। बहुत बहुत धन्यवाद टिम। –

2

आप re-assigning हैं पाठ से पहले AddNewDivision_Click घटना तक पहुँचने हर बार Page_Load कि अधिक पाठ तो टेक्स्ट बॉक्स में दर्ज की गई लिखते नाम है। पृष्ठ लोड पर इसे एक बार असाइन करने के लिए और बाद की कॉल लिखने पर आप Page.IsPostBack संपत्ति का उपयोग कर सकते हैं।

if(!Page.IsPostBack) 
     Name.Text = "Enter Your Name Here"; 

या आप डिजाइन html में पाठ प्रदान कर सकते हैं और removestatementpage_load से

<asp:TextBox ID="Name" runat="server" Text="Enter Your Name Here"></asp:TextBox> 
+0

आपके उत्तर आदिल के लिए धन्यवाद! –

+0

आपका स्वागत है। – Adil

+0

मेरी इच्छा है कि मैं आपके दोनों उत्तरों का चयन कर सकूं। लेकिन टिम पहला जवाब था और उसके जवाब ने इस मुद्दे को हल किया। क्षमा करें आदिल। लेकिन मैंने आपके लिए भी वोट दिया है। –

0

एक और तुरंत स्पष्ट मुद्दा है:

<form runat="server" id="NewForm"> 
    Name: <asp:TextBox ID="Name" runat="server"></asp:TextBox> 
    <asp:Button ID="AddNewName" runat="server" Text="Add" **OnClick="AddNewName_Click"** /> 
    <asp:Label ID="NewName" runat="server"></asp:Label> 
</form> 

ऊपर नहीं तारक। फिर, आप सोच रहे थे कि यह क्यों नहीं चला:

protected void **AddNewDivision_Click**(object sender, EventArgs e) 
{ 
    NewName.Text = Name.Text; 
} 

फिर, तारों को नोट करें। आप सही शून्य नहीं बुला रहे थे, असल में आप शायद एक शून्य को बुला रहे थे जो अस्तित्व में नहीं था।