1
我被給了一個我需要修改的頁面,它有一個帶ItemTemplate的Repeater,它包含輸入個人地址的字段。每個地址字段看起來像這樣如何使用Repeater的ItemIndex從字典中檢索值?
<input type="text" id="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>"
name="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>" />
你可以看到,我們在附加中繼器的ItemIndex所到HTML的id和name字段的文本框的末尾。
在Code-behind中我們有一個名爲DataProxy的類,它基本上是一個由Request.Params構建的字典,我們通常用它來重新填充用戶輸入的表單。例如,他們將數據放在表單上,提交,但驗證失敗,因爲有幾個字段是空的,但我們希望重新填充他們之前輸入的內容。我們會是這樣做的:
<input type="text" name="myTextBox" id="myTextBox"
value="<%: DataProxy["myTextBox"].ToString() %>" />
通常這個偉大的工程,但它不是這個中繼器內的工作,我相信這是因爲DataBind已爲轉發後,我們已經搜查了DataProxy字典我們的價值發生。這是我使用的代碼:
<input type="text" id="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>"
name="line1<%# ((RepeaterItem)Container).ItemIndex + 1%>"
value="<%# DataProxy["line1" + (((RepeaterItem)Container).ItemIndex + 1).ToString()] %>" />
有沒有辦法,我可以訪問我的DataProxy字典,從直放站的ItemIndex屬性的方法嗎?
請注意,我的中繼器正在Page_Load()中進行數據綁定。
我會試試這個,但你能告訴我爲什麼把我的字典轉換成列表會對我有幫助嗎?這似乎是一個時間問題,而不是缺乏數據問題。 – kd7iwp 2012-02-01 17:41:45