2013-10-07 37 views
0

我有一個ASP網站,它使用戶能夠添加標籤元素。我不知道添加了多少個標籤或他們擁有哪個ID。我只知道,他們將在Panel pnl_Added內。用戶添加完所有標籤後,他會推送一個發送按鈕以進行更新。所以,現在我在我的服務器上,等待這個回發,但我不知道在哪裏,何時以及如何找出哪些元素被添加到pnl_Added中。有人能幫助我嗎?找到哪些元素是通過Javascript添加的

我已經試過這樣的事情:

protected void Page_Load(object sender, EventArgs e) 
{ 
[...] 
for (int i = 0; i < pnl_Added.Controls.Count; i++) 
     { 
      [...] 
     } 
[...] 
} 

但我認爲這是因爲加載的ViewState的太晚了?那可能嗎?

我與VS 2013的工作,ASP C#與.NET Framework 4

+0

你可以顯示你的代碼? –

+0

你使用asp.net或只是asp?我很困惑,因爲你標記了asp-classic,但提到了asp c#。 – SamekaTV

+0

對不起,標籤錯誤! – Tagamoga

回答

0

在服務器上,控件樹不是從實際的客戶端HTML創建的。實際上,除了input標籤值在提交表單的範圍之外,服務器不知道客戶端HTML的任何內容。一般來說,在Page_Load方法中可用的所有控件,在服務器端從aspx文件標記中創建。

要實現您的方案,您需要爲每個標籤添加隱藏字段,從客戶端添加並將標籤的內部文本保存到隱藏字段的值中。然後你可以得到這些標籤文本如下:

var labels = Request.Form["hiddenField's name"] as string[]; 
+0

這不是我希望找到的直接方式。但它效果很好。非常感謝你! – Tagamoga

0

你應該去一個槓桿更深,從Request變量取添加的元素,因爲控制pnl_Added不知道他們因爲沒有回傳。

事情是這樣的:

Request.Form["field_id"] 

我建議運行在調試模式下頁面中,檢查Request.Form集合,並找到你所需要的。你應該看到你的標籤元素。

+0

現在我很困惑。按下「更新」按鈕將發送回服務器... – Tagamoga

+0

您需要提供添加元素的代碼,是否在客戶端我想? – Robert