datalist edit mode.

Posted by Ranjana on Stack Overflow See other posts from Stack Overflow or by Ranjana
Published on 2010-03-12T11:20:41Z Indexed on 2010/03/12 22:57 UTC
Read the original article Hit count: 413

Filed under:
|
|

i have a datalist control

        <ItemTemplate>
            <tr>
                <td height="31px">
                    <asp:Label ID="lblStudentName" runat="server" Text="StudentName :" Font-Bold="true"></asp:Label>
                    <%# DataBinder.Eval(Container.DataItem, "StudentName") %>
                </td>
                <td height="31px">
                    <asp:LinkButton ID="lnkEdit" runat="server" CommandName="edit">Edit</asp:LinkButton>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lblAdmissionNo" runat="server" Text="AdmissionNo :" Font-Bold="true"></asp:Label>
                    <%# DataBinder.Eval(Container.DataItem, "AdmissionNo")%>
                </td>
            </tr>

            <tr>
                <td height="31px">
                    <asp:Label ID="lblStudentRollNo" runat="server" Text="StdentRollNo :" Font-Bold="true"></asp:Label>
                    <%# DataBinder.Eval(Container.DataItem, "StdentRollNo") %>
                </td>
                <td height="31px">
                    <asp:LinkButton ID="lnkEditroll" runat="server" CommandName="edit">Edit</asp:LinkButton>
                </td>
            </tr>
     </ItemTemplate>
        <EditItemTemplate>
            <tr>
                <td height="31px">
                    <asp:Label ID="lblStudentName" runat="server" Text="StudentName :" Font-Bold="true"></asp:Label>
                    <asp:TextBox ID="txtProductName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "StudentName") %>'></asp:TextBox>
                </td>
                <td>
                    <asp:LinkButton ID="lnkUpdate" runat="server" CommandName="update">Update</asp:LinkButton>
                    <asp:LinkButton ID="lnkCancel" runat="server" CommandName="cancel">Cancel</asp:LinkButton>
                </td>
            </tr>
            <tr>
                <td height="31px">
                    <asp:Label ID="lblAdmissionNo" runat="server" Text="AdmissionNo :" Font-Bold="true"></asp:Label>
                    <%# DataBinder.Eval(Container.DataItem, "AdmissionNo")%>
                </td>
            </tr>

            <tr>
                <td height="31px">
                    <asp:Label ID="lblStudentRollNo" runat="server" Text="StudentRollNo :" Font-Bold="true"></asp:Label>
                    <asp:TextBox ID="txtStudentRollNo" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "StdentRollNo") %>'></asp:TextBox>
                </td>
                <td>
                    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="update">Update</asp:LinkButton>
                    <asp:LinkButton ID="LinkButton2" runat="server" CommandName="cancel">Cancel</asp:LinkButton>
                </td>
            </tr>
      </EditItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:DataList>

code behind:

protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { DataTable dt = new DataTable(); dt = obj.GetSamples();

        DataList1.DataSource = dt;
        DataList1.DataBind();
    }

}


public void DataBind()
{
    DataTable dt = new DataTable();
    dt = obj.GetSamples();

    DataList1.DataSource = dt;
    DataList1.DataBind();
}

protected void DataList1_EditCommand1(object source, DataListCommandEventArgs e) {

    DataList1.EditItemIndex = e.Item.ItemIndex;

    DataBind();


}

protected void DataList1_CancelCommand1(object source, DataListCommandEventArgs e) {

    DataList1.EditItemIndex = -1;
    DataBind();

}

protected void DataList1_UpdateCommand1(object source, DataListCommandEventArgs e) { // Get the DataKey value associated with current Item Index. // int AdmissionNo = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]); string AdmissionNo = DataList1.DataKeys[e.Item.ItemIndex].ToString();

    // Get updated value entered by user in textbox control for
    // ProductName field.
    TextBox txtProductName;
    txtProductName = (TextBox)e.Item.FindControl("txtProductName");

    TextBox txtStudentRollNo;
    txtStudentRollNo = (TextBox)e.Item.FindControl("txtStudentRollNo");

    // string variable to store the connection string
    // retrieved from the connectionStrings section of web.config
    string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

    // sql connection object
    SqlConnection mySqlConnection = new SqlConnection(connectionString);

    // sql command object initialized with update command text
    SqlCommand mySqlCommand = new SqlCommand("update SchoolAdmissionForm set StudentName=@studentname ,StdentRollNo=@studentroll where AdmissionNo=@admissionno", mySqlConnection);
    mySqlCommand.Parameters.Add("@studentname", SqlDbType.VarChar).Value = txtProductName.Text;
    mySqlCommand.Parameters.Add("@admissionno", SqlDbType.VarChar).Value = AdmissionNo;
    mySqlCommand.Parameters.Add("@studentroll", SqlDbType.VarChar).Value = txtStudentRollNo.Text;


    // check the connection state and open it accordingly.
    if (mySqlConnection.State == ConnectionState.Closed)
        mySqlConnection.Open();

    // execute sql update query
    mySqlCommand.ExecuteNonQuery();

    // check the connection state and close it accordingly.
    if (mySqlConnection.State == ConnectionState.Open)
        mySqlConnection.Close();

    // reset the DataList mode back to its initial state
    DataList1.EditItemIndex = -1;
    DataBind();
    //  BindDataList();

}

But it works fine.... but when i click edit command both the Fields

1.StudentName

2.StudentRollNo

im getting textboxes to all the fields where i placed textbox when i click 'edit' command and not the particular field alone . but i should get oly the textbox visible to the field to which i clik as 'edit' , and the rest remain same without showing textboxes even though it is in editmode

© Stack Overflow or respective owner

Related posts about datalist

Related posts about c#