मैं चेकबॉक्स है:इस तरह ASPxGridView में ASPxGridView नहीं Woking में CheckBox.Checked जाओ ठीक
<dxwgv:ASPxGridView ID="Grid_Loading_Plan_Detail" runat="server" >
...
<dxwgv:GridViewDataColumn Caption="#" VisibleIndex="1">
<DataItemTemplate>
<dxe:ASPxCheckBox ID="loadingStatus" runat="server" Checked='<%# GetChecked(Eval("loadingStatus").ToString()) %>'></dxe:ASPxCheckBox>
</DataItemTemplate>
</dxwgv:GridViewDataColumn>
...
</dxwgv:ASPxGridView>
यह अच्छी तरह से बाँध जब चेकबॉक्स भरी हुई है, यहाँ समारोह:
Public Function GetChecked(value As String) As Boolean
Select Case value
Case "1"
Return True
Case "0"
Return False
Case Else
Return False
End Select
End Function
समस्या है, checked
स्थिति की जांच करते समय, यह हमेशा लोड किए गए मान को वापस कर देता है। यदि स्थिति पहली बार लोड होने पर checked
है और फिर मैं unchecked
चेकबॉक्स करता हूं, तो यह अभी भी checked
लौटाता है। यहाँ मैं मूल्य कैसे प्राप्त और डेटाबेस के लिए सहेजें:
Protected Sub btSimpan_Click(sender As Object, e As EventArgs) Handles btSimpan.Click
Try
sqlstring = ""
For i As Integer = 0 To Grid_Loading_Plan_Detail.VisibleRowCount - 1
Dim loadingStatus As DevExpress.Web.ASPxEditors.ASPxCheckBox = Grid_Loading_Plan_Detail.FindRowCellTemplateControl(i, Grid_Loading_Plan_Detail.Columns(1), "loadingStatus")
sqlstring = sqlstring & " UPDATE containerTransaction SET loadingStatus = '" & IIf(loadingStatus.Checked, "1", "0") & "' " & _
" WHERE ID = '" & Grid_Loading_Plan_Detail.GetRowValues(i, "ID") & "'; "
Next
If SQLExecuteNonQuery(sqlstring) > 0 Then
Response.Redirect("loading-plan.aspx")
End If
Catch ex As Exception
Response.Write("Error btSimpan_Click <BR> " & ex.ToString)
End Try
End Sub
जोड़ा
यहाँ मैं डेटा कैसे बाँध:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
If Not Page.IsPostBack Then
Call Load_menu()
End If
Catch ex As Exception
Response.Write("Page_Load Exception :<br>" & ex.ToString)
End Try
If Not Session("Grid_Loading_Plan_Detail") Is Nothing Then
Grid_Loading_Plan_Detail.DataSource = CType(Session("Grid_Loading_Plan_Detail"), DataTable)
Grid_Loading_Plan_Detail.DataBind()
End If
End Sub
और यहाँ Load_menu()
समारोह:
Private Sub Load_menu()
Try
sqlstring = "SELECT ID, code, date, container, seal, sender, receiver, [weight], loadingStatus " & _
"FROM containerTransaction " & _
"WHERE loadingCode = (SELECT TOP 1 code FROM loadingPlan WHERE ID = '" & ID & "') AND [status] = 1 " & _
"ORDER BY [weight] "
DS = SQLExecuteQuery(sqlstring)
DT = DS.Tables(0)
Session("Grid_Loading_Plan_Detail") = DT
Grid_Loading_Plan_Detail.DataSource = DT
Grid_Loading_Plan_Detail.KeyFieldName = "ID"
Grid_Loading_Plan_Detail.DataBind()
Catch ex As Exception
Response.Write("Load_Menu Exception :<br>" & ex.ToString)
End Try
End Sub
मुझे क्या याद आया? किसी भी मदद की सराहना की जाएगी। धन्यवाद।
आप ग्रिड व्यू में डेटा को बाध्यकारी कैसे और कब कर रहे हैं? यदि आपने 'IsPostBack' चेक के अंदर डेटाबेस को लपेट नहीं किया है, तो चेकबॉक्स की स्थिति प्रत्येक बार जब भी पोस्टबैक होता है तो उनके डेटाबेस मानों द्वारा अधिलेखित किया जाएगा। – VDWWD
आप अपने चेक किए गए फ़ंक्शन को लोडिंगस्टैटस के साथ पैरामीटर के रूप में भी कॉल कर रहे हैं, इसलिए जब भी इसे चेक किया जाता है या अनचेक किया जाता है तो यह लोडिंग फ़र्म को लोडिंग पैराम – MaCron
के साथ कॉल करता है, वास्तव में यह सुनिश्चित नहीं है कि मैं इस मामले को पूरी तरह से समझता हूं लेकिन मुझे लगता है कि यह ' LoadPostData() 'आपके कोड में गायब है। 'डायरेक्टकास्ट (बीटीस्मान, आईपॉस्टबैकडाटा हैंडलर) को कॉल करने का प्रयास करें। लोडपोस्टडाटा (बीटीएसआईएमपीएन.एननिकिड, रिक्वेस्ट.फॉर्म)' इस लाइन के ठीक बाद 'डिम लोडिंगस्टैटस DevExpress.Web.ASPxEditors.ASPxCheckBox = ....' और देखें। बीटीडब्ल्यू मैं वास्तव में वीबी.नेट में नहीं हूं इसलिए मैंने अपने सी # स्निपेट को इस टुकड़े में परिवर्तित कर दिया। मूल में सी # है ((आईपीओस्टबैकडाटा हैंडलर) बीटीसिम्पैन) .लोडपोस्टडाटा (बीटीएसआईएमपीएन.एननिकिड, Request.Form); '। आशा करता हूँ की ये काम करेगा..यदि ऐसा है तो कृपया मुझे बताएं और मैं कल एक पूर्ण उत्तर पोस्ट करूंगा। शुभकामनाएँ :) –