मेरे पास 2 ग्रिडव्यू हैं। पहले ग्रिड में एक बटन होता है जब क्लिक किया जाता है, यह क्लिक किए गए बटन की आईडी के आधार पर डेटा के साथ एक दूसरी ग्रिड को पॉप्युलेट करेगा।किसी अन्य फ़ंक्शन से RowDataBound को कॉल करें
मेरे पास चयनित पंक्ति के आधार पर ग्रिड दिखाने के लिए RowDataBound फ़ंक्शन में कोड है। लेकिन समस्या यह है कि जनसंख्या फ़ंक्शन से पहले कोड स्वचालित रूप से RowDataBound चला रहा है। तो दूसरा ग्रिड प्रदर्शित नहीं हो रहा है।
GridView के लिए कोड:
<asp:GridView style="width:75%"
ID="gvCVRT"
ShowHeaderWhenEmpty="true"
CssClass="tblResults"
runat="server"
OnRowDataBound="gvCVRT_RowDataBound"
OnSelectedIndexChanged="gridviewParent_SelectedIndexChanged"
DataKeyField="ID"
DataKeyNames="ChecklistID"
AutoGenerateColumns="false"
allowpaging="false"
AlternatingRowStyle-BackColor="#EEEEEE">
<HeaderStyle CssClass="tblResultsHeader" />
<Columns>
<asp:BoundField DataField="ChecklistID" HeaderText="ID" ></asp:BoundField>
<asp:CommandField ShowSelectButton="True" HeaderText="Select" />
<asp:BoundField DataField="ChecklistDate" HeaderText="Checklist Date" dataformatstring="{0:dd/MM/yyyy}"></asp:BoundField>
<asp:BoundField DataField="User" HeaderText="User" ></asp:BoundField>
<asp:BoundField DataField="Note" HeaderText="Note" ></asp:BoundField>
</Columns>
</asp:GridView>
पीछे कोड: चयन करें बटन के लिए
protected void gvCVRT_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
lookupCVRT work = (lookupCVRT)e.Row.DataItem;
GridView gv = sender as GridView;
if (work.ID != null)
{
int index = gv.Columns.HeaderIndex("Select");
if (index > -1)
{
e.Row.Cells[index].Attributes.Add("class", "gvCVRTRow");
e.Row.Cells[index].ToolTip = "Click here to Edit Checklist";
}
}
}
}
कोड:
protected void gridviewParent_SelectedIndexChanged(object sender, EventArgs e)
{
List<lookupCVRT> workDetails = lookupCVRT.GetChecklistItemsByChecklistID(Company.Current.CompanyID, ParentID.ToString(), gvCVRT.SelectedDataKey.Value.ToString());
gvCVRTDetails.DataSource = workDetails;
gvCVRTDetails.DataBind();
FireJavascriptCallback("setArgAndPostBack();");
}
तो समस्या है जब मैं में चयनित करें बटन पर क्लिक करें ग्रिड यह RowDataBound
पहले gridviewParent_SelectedIndexChanged
चलाता है लेकिन मुझे 012 चलाने की आवश्यकता है पहले। क्या मैं gridviewParent_SelectedIndexChanged
से RowDataBound
फ़ंक्शन को कॉल कर सकता हूं?
Page_Load समारोह:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
GetChecklistID = "";
if (ParentID.HasValue)
{
ViewState["ParentID"] = ParentID;
List<lookupCVRT> work = lookupCVRT.GetCVRTItems(Company.Current.CompanyID, ParentID.ToString());
ViewState["CVRT"] = work;
gvCVRT.DataSource = work;
gvCVRT.DataBind();
}
}
else
{
if (ViewState["ParentID"] != null)
{
ParentID = (int?)ViewState["ParentID"];
List<lookupCVRT> work = ViewState["CVRT"] as List<lookupCVRT>;
gvCVRT.DataSource = work;
gvCVRT.DataBind();
}
}
}
आप अपने Page_Load विधि और अन्य सभी तरीकों कि DataBind को गिरावट को रोकने के() पोस्ट कृपया कर सकते हैं? – Markus
@ मार्कस मेरे प्रश्न में पेज_ लोड कोड जोड़ें। यह डाटाबेस को एकमात्र जगह कहा जाता है। जब मैं चयन पर क्लिक करता हूं तो यह विधि – user123456789
विधि के 'अन्य' भाग में जाता है; मुझे लगता है कि मैंने समस्या की पहचान की है; कृपया मेरा अद्यतन उत्तर देखें। – Markus