mboost-dp1
asp.net C# gridview template
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg har et gridview som jeg fylder fra en DB. To af felterne har desuden en dropdownlist, den ene er låst med to værdier, men den vælger dynamisk den ene værdi, den anden dropdownlist udfyldes dynamisk.
Når jeg sorterer mit gridview forsvinder de dynamiske indstillinger, de kommer igen ved en genindlæsning af siden.
Hvordan kan jeg undgå at mine dynamiske indstillinger forsvinder?
Hvor skal jeg sætte ind for at foretage en ændring umiddelbart efter en sort er foretaget? Jeg har forsøgt eventhandlers _sorting og _sorted, men umiddelbart hjalp det ikke. Jeg mistænker at det er fordi mine tilføjelser til disse kommer ind inden den foretager en databind til gridview.
Jeg tror jeg skal have fat i min gridview efter den har foretaget databind. Jeg har dog forsøgt at kalde mine dynamiske ændringer ved page_load, men dette hjælper ikke, så jeg forestiller mig at den omgår pageload, måske med en updatepanel?
Når jeg sorterer mit gridview forsvinder de dynamiske indstillinger, de kommer igen ved en genindlæsning af siden.
Hvordan kan jeg undgå at mine dynamiske indstillinger forsvinder?
Hvor skal jeg sætte ind for at foretage en ændring umiddelbart efter en sort er foretaget? Jeg har forsøgt eventhandlers _sorting og _sorted, men umiddelbart hjalp det ikke. Jeg mistænker at det er fordi mine tilføjelser til disse kommer ind inden den foretager en databind til gridview.
Jeg tror jeg skal have fat i min gridview efter den har foretaget databind. Jeg har dog forsøgt at kalde mine dynamiske ændringer ved page_load, men dette hjælper ikke, så jeg forestiller mig at den omgår pageload, måske med en updatepanel?
protected void Page_Load(object sender, EventArgs e)
{
// get project information from DB, so we can
reuse it later in the session
loadDBInfo();
// Select the relevant item in the dropdown
menu when this is not a postback.
if (!IsPostBack)
{ alignDropdown(); }
}
protected void loadDBInfo()
{
// Load info from DB
projectPrivacy = dbA.getProjectPrivacy();
activeProject = dbA.getActiveProject();
amntTeams = dbA.getAmntTeams(activeProject);
// Set labels on page
lblCurrentProject.Text = activeProject;
lblAmntTeams.Text = amntTeams;
// Set privacy labels and buttons
if (projectPrivacy == "True")
{
lblProjectPrivacy.Text = "Project is private";
btnPrivacy.Text = "Set public";
}
else
{
lblProjectPrivacy.Text = "Project is public";
btnPrivacy.Text = "Set private";
}
}
protected void alignDropdown()
{
// Select the proper item from the dropdown
in the gridview
DropDownList ddlList;
foreach (GridViewRow gvr in grdUsersInProject.Rows)
{
// Set the UserTitle Dropdown
ddlList = (DropDownList)grdUsersInProject.Rows[gvr.RowIndex].FindControl("ddlUserTitle");
//Set index to 0 if Member
Label tempLabel = (Label)gvr.Cells[2].FindControl("lblUserTitle");
if (tempLabel.Text == "Team Member")
{ddlList.SelectedIndex = 0;}
//Set index 1 if master
else
{ddlList.SelectedIndex = 1;}
// Set the TeamNumber dropdown
ddlList = (DropDownList)grdUsersInProject.Rows[gvr.RowIndex].FindControl("ddlSetTeam");
for (int i = 1; i <= int.Parse(amntTeams); i++)
{
ddlList.Items.Add(new ListItem("Team " + i, i.ToString()));
}
}
}
<asp:GridView ID="grdUsersInProject" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="ID" onsorted="grdUsersInProject_Sorted" onsorting="grdUsersInProject_Sorting">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" InsertVisible="False" ReadOnly="True" />
<asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
<asp:TemplateField HeaderText="UserTitle" SortExpression="UserTitle">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("UserTitle") %>'></asp:TextBox></EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblUserTitle" runat="server" Text='<%# Bind("UserTitle") %>'></asp:Label>
<asp:DropDownList ID="ddlUserTitle" runat="server" AutoPostBack="True"
onselectedindexchanged="ddlUserTitle_SelectedIndexChanged">
<asp:ListItem Value="Team Member">Team Member</asp:ListItem>
<asp:ListItem Value="Scrum Master">Scrum Master</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TeamNumber" SortExpression="TeamNumber">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("TeamNumber") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblTeamNumber" runat="server" Text='<%# Bind("TeamNumber") %>'></asp:Label>
<asp:DropDownList ID="ddlSetTeam" runat="server"
onselectedindexchanged="ddlSetTeam_SelectedIndexChanged"
AutoPostBack="True">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="IsConfirmed" HeaderText="IsConfirmed"
SortExpression="IsConfirmed" />
</Columns>
</asp:GridView>
Jeg har sat den til at genindlæse hele lortet ved postback, (tror jeg) er det ikke det der sker i page_load?
forresten er siden oppe på goblogyourself.dk/Scrum
login med Newz // newz1
så kan du se problemet.
Ja den er grim, men jeg tager pynt når jeg har fået det til at virke.
forresten er siden oppe på goblogyourself.dk/Scrum
login med Newz // newz1
så kan du se problemet.
Ja den er grim, men jeg tager pynt når jeg har fået det til at virke.
ser lige at jeg ikke genindlæser den i page_load ved postback, men jeg prøvede at genindlæse ved postback og det hjælper ikke.
Jeg er efterhånden ret sikker på at det er fordi jeg skal køre min alignDropdown(), som indsætter det dynamiske indhold, efter jeg har sorteret, men jeg kan ikke finde ud af hvordan jeg kan køre det efter sort.
Jeg er efterhånden ret sikker på at det er fordi jeg skal køre min alignDropdown(), som indsætter det dynamiske indhold, efter jeg har sorteret, men jeg kan ikke finde ud af hvordan jeg kan køre det efter sort.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.