2015-06-16 41 views
0

因此,我有一個GridView基於數據庫數據與CheckBox column在一個asp.net網站。 用戶可以檢查checkbox,然後我將更改保存到數據庫。在IIS上運行asp.net gridview null

本地一切都很好。但是,當我將網站發佈到IIS服務器時 - 即問題開始時 - 在事件查看器中,當用戶嘗試保存更改時,我繼續得到以下異常:Index was out of range. Must be non-negative and less than the size of the collection.Parameter name: index 這意味着在試圖保存時gridview爲空它。 現在,我讀了一下,顯然在PostBackGridView DataSource不保留他的價值觀。那麼當我在本地運行網站時,它如何完美運行?更多的是,我看到很多在線的例子,它們都是一樣的,它適用於他們。 gridView with checkBox

我的代碼:

GridView控件:

<asp:GridView runat="server" ID="grdDataBuffer" Visible="true" > 
    <Columns> 
    <asp:TemplateField> 
    <ItemTemplate> 
    <asp:CheckBox ID="CheckBoxColumnDb" runat="server" HeaderText="check" ReadOnly="True"/> 
    </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 
</asp:GridView> 

保存按鈕:

<asp:Button ID="btnUpdate" class="Common_Button" runat="server" Text="update" OnClick="btnUpdate_Click" Visible="false"/> 

後面的代碼:

protected void Page_Load(object sender, EventArgs e) 
{ if (!IsPostBack) 
    { 
     grdDataBuffer.DataSource = null; 
     grdDataBuffer.DataBind(); 
     dv = BL.Process_BL.GetInfo; 
     grdDataBuffer.DataSource = dv; 
     grdDataBuffer.DataBind(); 
    } 
} 

protected void btnUpdate_Click(object sender, EventArgs e) 
{ 
    //ON IIS SERVER grdDataBuffer.Rows.Count = 0- ALWAYS! 
    for (int i = 0; i < grdDataBuffer.Rows.Count; i++) 
    { 
     CheckBox chk =(CheckBox)grdDataBuffer.Rows[i].Cells[0].Controls[1]; 
     if (chk.Checked == true) 
     { 
      //does the whole logic and saves it 
     } 
    } 
} 

任何一個? 在此先感謝:)

+2

你能分享你的代碼,所以我們可以看到問題出在哪裏? – Mert

+1

你是否更新過Web.Config中的SQL連接字符串? (如果你有)。 – Dan

+0

您的活動查看器中是否顯示任何錯誤?在IIS上啓用了所有功能?通過Visual Studio運行時,IIS Express(VS使用的)的配置與常規IIS不同。你的web.config是否指向正確的位置? – user1666620

回答

0

有史以來最奇怪的事情 - 我重新創建了所有的控件和代碼背後的一切的asp頁面,一切工作正常 - 我想那東西只是在舊的頁面設計師集結起來,搞砸了整個東西了..

我不知道它是否有助於任何人 - 但有時候假設工作的事情 - 不 - 也許它的價值檢查,如果設計師的東西發生了變化。

相關問題