2012-05-07 60 views
0

我在gridview中有一個綁定域,它以編程方式接收其中的內容的超鏈接。它在下拉列表索引更改後獲取新數據集。一個數據集的列將適用鏈接字段的數據,並跳過那些沒有,你可以看到我的邏輯運用下面的鏈接:當我更新另一個gridview時,ASP.NET Boundfield發生變化

if (e.Row.DataItem != null && int.TryParse(e.Row.Cells[4].Text, out incidents)) 
{ 
    HyperLink incidentsLink = new HyperLink(); 
    incidentsLink.ForeColor = System.Drawing.Color.Blue; 
    incidentsLink.NavigateUrl = "~/somesite.aspx?no=" + stnNum + "&dt=" + date; 
    incidentsLink.Text = e.Row.Cells[4].Text; 
    e.Row.Cells[4].Controls.Add(incidentsLink); 
} 

這適用OnRowDataBound爲GridView。然後我有另一個gridview連線到另一個下拉列表。當任一下拉列表更改索引時,它會抓取相關gridview的新數據集,並使用更新面板激發ajax更新。

當第二個gridview更新它會刪除第一個gridview中的鏈接時會發生什麼。它不會擦除保留的文本,但文本不再固定在鏈接上。所有以這種方式製作並放入網格視圖的鏈接都會丟失它們的鏈接屬性,但使用asp:HyperLinkField創建的字段保持不變。問題在於stnNum和date不是爲第一個gridview返回的數據集的一部分,所以我必須在gridview已經構建之後將它們添加爲鏈接。

我能想到的唯一解決方案是重新啓用每次第二次更新gridview時都會添加指向gridview的鏈接的函數。任何其他解決方案都會有幫助,或者解釋爲什麼我的鏈接被刪除會很好。

回答

0

嘗試僅在沒有任何POSTBACK的情況下綁定GridView/DropDown。我相信POST Back事件讓你的GridView控件以某種方式丟失他們的數據。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
    // Bind your Grids & Dropdowns here on page load 
    } 
} 
相關問題