TextBox에 Button과 Datagrid가있는 페이지가 있습니다.datagrid datasource에 항목을 추가하여 viewstate를 잃습니다.
목표는 간단합니다. TextBox에 내용을 입력하고 Button을 누를 때마다 약간의 확인을 한 다음 항목을 DataGrid 및 비즈니스 논리 데이터 소스에 추가합니다.
문제는 내가 DataGrid에 항목을 표시하게하려면 datagrid.DataSource = myBusinessObject; datagrid.DataBind(); 문제는 내가 viewstate 및 사용자가 한 라디오 박스에서 선택을 잃게됩니다. 뒤에
<asp:TextBox ID="txtDomain" runat="server" style="margin-bottom: 0px"
Width="254px"></asp:TextBox>
<asp:Button ID="domainAdd" runat="server" onclick="domainAdd_Click"
style="height: 26px" Text="Ajouter" />
<br />
<br />
<asp:DataGrid ID="dg1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="Name" HeaderText="Nom choisi"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Enregistrer">
<ItemTemplate>
<asp:RadioButton ID="register" runat="server" GroupName="domaine_action" Checked='<%# Bind("IsRegister")%>' Enabled='<%# Bind("CanRegister")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Transférer">
<ItemTemplate>
<asp:RadioButton ID="transfert" runat="server" GroupName="domaine_action" Checked='<%# Bind("IsTransfert")%>' Enabled='<%# Bind("CanTransfert")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Gérer moi même">
<ItemTemplate>
<asp:RadioButton ID="manage" runat="server" GroupName="domaine_action" Checked='<%# Bind("IsSelfManaged")%>' Enabled='<%# Bind("CanSelfManage")%>' />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
코드 :
protected void domainAdd_Click(object sender, EventArgs e)
{
if (Session["dic"] != null)
{
var _dic = (List<Test1>)Session["dic"];
_dic.Add(new Test1 { Name = txtDomain.Text });
dg1.DataSource = _dic;
dg1.DataBind();
Session["dic"] = _dic;
}
else
{
List<Test1> _dic = new List<Test1>();
_dic.Add(new Test1 { Name = txtDomain.Text });
dg1.DataSource = _dic;
dg1.DataBind();
Session["dic"] = _dic;
}
이제 Test1을 오브젝트는 비즈니스 로직에 대한 필드를 매핑하는 조금 클래스 여기를
는 템플릿입니다.public class Test1
{
public string Name { get; set; }
public string IsRegister { get; set; }
public string IsTransfert { get; set; }
public string IsSelfManaged { get; set; }
public string CanRegister { get; set; }
public string CanTransfert { get; set; }
public string CanSelfManage { get; set; }
}
그래서 내가 직접 질문을 것 같아요 그리드에 radioboxes의 선택을 잃지 않고 그리드 & 비즈니스 오브젝트에 항목을 추가하는 방법.
사실 나는 datagrid.Datasource = "something"및 datagrid.DataBind(); 다시 게시 할 때 ...하지만 개체가이 방법으로 추가되지 않습니다 ... – Erick