2013-02-28 88 views
0

我有這樣的代碼形式:ASP.NET窗體部分Submit

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 

    <asp:TextBox ID="Text1" runat="server"></asp:TextBox> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:TextBox ID="Text2" runat="server"></asp:TextBox> 
      <asp:Button ID="Submit" runat="server" OnClick="Submit_Click" 
       Text="Click Me"/> 
     </ContentTemplate> 

    </asp:UpdatePanel> 

當我點擊提交按鈕,所有窗體回在服務器上(文本1和文本)。我只想回發UpdatePanel(Text2)中的文本框。可能嗎?

感謝您的回覆。

EDIT(解決方案): 我想,我有使用Javascript的解決方案:

function onSubmit() { 
     var text1 = this.document.getElementById('<%=Text1.ClientID%>'); 
     text1.disabled = true; 
     return true; 
    } 

    .... 

    <asp:Button ID="Submit" OnClientClick="onSubmit();" ..../> 

這導致文本1將回發前被禁用。它接縫ASP.NET不會從禁用的文本框回發值。 Hovewer,這隻有在沒有UpdatePanel的情況下才有效。當然,回發後Text1是空的。

+0

你的意思是在Text1文本中進行更改也可以在部分回發響應中使用? – 2013-02-28 13:11:48

+0

當我點擊提交按鈕時,我不想回發Text1。我只想提交Text2。 – 2013-02-28 13:30:48

回答

0

那麼,UpdatePanel控制返回的內容。你不能改變這種行爲。它應該只發布UpdatePanel的表單數據(我相信),加上整個ViewState。它必須發佈整個ViewState才能使頁生命週期起作用。

+0

提交按鈕張貼回Text2(我想要的),但也Text1(它不在UpdatePanel中)。如果我在Text1上將屬性_EnableViewState_設置爲false,它仍會在提交時重新發布。 – 2013-02-28 13:35:22