當用戶在我的網站上使用GridView
進行搜索時,我希望有一個checkbox
列,他們會點擊這一列,將列STATUS
中的值更改爲U
。我有一段時間尋找可行的代碼,所以我希望你們可以提供幫助。我是一個完整的NOOB,如果你知道答案,請說明性。GridView中的複選框更新
Checkbox
按鈕的代碼 - 當前我搜索時它返回說它不能將字符串轉換爲boolean
。
<asp:TemplateField HeaderText="Successful Contact?">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" checked='<%#Bind("status")%>' AutoPostBack="true" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" checked='<%#Bind("status")%>'
Enabled="False" /></ItemTemplate>
</asp:TemplateField>
這是VB代碼
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
For Each GridViewRow In GridView1.Rows
Dim row As GridViewRow = GridView1.Rows(e.RowIndex)
Dim value As Boolean
value = DirectCast(GridView1.Rows(e.RowIndex).Cells(0).FindControl("CheckBox1"), CheckBox).Checked
Dim connectionString As String = ConfigurationManager.ConnectionStrings("Data Source=server;Initial Catalog=i3FCC01;Integrated Security=True;").ConnectionString
Dim com_sql As New SqlClient.SqlCommand
Dim insertSql As String
insertSql = "Update CallQueueFCC Set Status='U' where Id = @id"
Using myConnection As New SqlConnection(connectionString)
myConnection.Open()
Dim myCommand As New SqlCommand(insertSql, myConnection)
myCommand.Parameters.AddWithValue("@status", value)
myCommand.ExecuteNonQuery()
myConnection.Close()
End Using
Next
GridView1.EditIndex = -1
DataBind()
End Sub
謝謝里面,但現在我和以前一樣混亂。 Visual Studio不喜歡e.RowIndex,但我也不確定該代碼如何執行任何操作,因爲我沒有看到它觸發任何sql update命令將SQL值更新爲U.將我的頭髮拉出來,但是我感謝你的幫助。 – user1993989
我已經更新了我的答案。我的不好。它應該是e.Row來代替e.RowIndex。代碼實際上做了一些事情。它清除了你正在對字符串進行布爾轉換的錯誤。您仍然必須掛鉤你在網格行更新事件中的更新邏輯,你已經完成了。讓我知道如果這仍然不清楚。 –