2 Gridviews'ım var. İlk ızgarada tıklandığında, tıklatılan düğmenin kimliğine dayanan verilerle ikinci bir ızgara dolduracak bir düğme vardır.Başka bir işlevden RowDataBound çağrısı
Ardından, seçilen satıra göre ızgarayı göstermek için RowDataBound işlevinde kodum var. Ancak sorun, kodun populate işlevinden önce otomatik olarak RowDataBound'u çalıştırmasıdır. Yani ikinci ızgara görüntülenmiyor. GridView
Kodu: arkasında
<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>
Kod: select düğme için
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";
}
}
}
}
Kodu: Ben Seç düğmesini tıkladığında
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();");
}
Yani sorundur izgaraönce gridviewParent_SelectedIndexChanged
çalışır ama ben 012 çalıştırmak gerekir İlk önce. gridviewParent_SelectedIndexChanged
'dan RowDataBound
işlevini çağırabilir miyim?
Page_Load fonksiyonu: GridView
için DataBind
yöntemi olarak adlandırılan olması durumunda
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();
}
}
}
Eğer Page_Load yöntem ve DataBind bir düşüş içeren tüm diğer yöntemleri() gönderebilir misiniz? – Markus
@Markus, sorumu Page_Load kodumu soruna ekleyin. DataBind'in çağrıldığı tek yer burası. Seçimi tıkladığımda, – user123456789
metodunun 'else' bölümüne gider; Sanırım problemi tanımladım; lütfen güncellenmiş cevabımı görün. – Markus