출처: http://csharpdotnetfreak.blogspot.com/2011/12/detailsview-edititemtemplate-dropdown.html

핵심은 control 을 찾아서 데이터를 입력하는 것이다.

아무튼 대단한듯..ㅡㅡ;;;


소스는 아래와 같다.

DropDownList And RadioButtonList In EditItemTemplate Of DetailsView to Edit and Update In Asp.Net.

DropDownList In EditItemTemplate of DetailsView
In This Example i'm going to explain how to put dropdownlist and radiobutton control in EditItemTemplate of DetailsView and Edit or Update Records of DetailsView in asp.net.

For this i have used SqlDataSource To fetch records from database and populate and update detailsview.

We need to write code in DataBound And ItemUpdating Events of Detailsview to get the selected value in dropdownlist from database when edit or update button is pressed.



HTML SOURCE OF ASPX PAGE
<asp:DetailsView ID="DetailsView2" runat="server"
                 AllowPaging="True" DataKeyNames="ID"
                 AutoGenerateRows="False"
                 DataSourceID="SqlDataSource2" Height="50px"
                 Width="125px"
                 onDataBound="DetailsView2_DataBound"
                 onItemUpdating="DetailsView2_ItemUpdating">
<Fields>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("ID") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<asp:Label ID="lblGender" runat="server" Text='<%#Eval("Sex") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:RadioButtonList ID="rbGender" runat="server">
<asp:ListItem>Male</asp:ListItem>
<asp:ListItem>Female</asp:ListItem>
</asp:RadioButtonList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%#Eval("Status") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlStatus" runat="server">
<asp:ListItem>Single</asp:ListItem>
<asp:ListItem>Married</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>
</div>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [ID], [Name], [Sex], [Status] FROM [Details]"
UpdateCommand="UPDATE Details SET Name = @Name, Sex = @Sex,
MaritalStatus = @Stauts WHERE (ID = @ID)">
<UpdateParameters>
<asp:Parameter Name="Name" />
<asp:Parameter Name="Sex" />
<asp:Parameter Name="Stauts" />
<asp:Parameter Name="ID" />
</UpdateParameters>
</asp:SqlDataSource>

Now to pouplate value from database in selected index of dropdown and then set the new selected value in sqldatasource parameter write below mentioned code in DataBound and ItemUpdating Event of DetailsView respectively.

C# CODE
protected void DetailsView2_DataBound(object sender, EventArgs e)
    {
        if (((DetailsView)sender).CurrentMode == DetailsViewMode.Edit)
        {
                DataRowView row = (DataRowView)((DetailsView)sender).DataItem;
                RadioButtonList rblGender = (RadioButtonList)((DetailsView)sender).FindControl("rbGender");
                DropDownList ddlStatus = (DropDownList)((DetailsView)sender).FindControl("ddlStatus");
                rblGender.SelectedValue = row[2].ToString();
                ddlStatus.SelectedValue = row[3].ToString();
        }
    }
    protected void DetailsView2_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
    {
        RadioButtonList rblGender = (RadioButtonList)((DetailsView)sender).FindControl("rbGender");
        DropDownList ddlStatus = (DropDownList)((DetailsView)sender).FindControl("ddlStatus");
        SqlDataSource2.UpdateParameters["Sex"].DefaultValue = rblGender.SelectedValue;
        SqlDataSource2.UpdateParameters["Stauts"].DefaultValue = ddlStatus.SelectedValue;
    }


Posted by 노을지기

출처: http://www.dotnetspider.com/resources/7644-Bind-DropDownList-from-DataBase-Using-c.aspx

데이터베이스에 직접 연결하여 가져올 수 있지만,

DataSet을 이용하여 가져올 수 있다.

dataapater와 dataset을 생성한 후 데이터를 입력하면 된다.

핵심 코드는 다음과 같다.

DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "FieldName"; // FieldName of Table in DataBase
DropDownList1.DataValueField = "FieldName";
DropDownList1.DataBind();


--- 원본 소스 ---

string s = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

private void bindtoddl()
{
SqlConnection con = new SqlConnection(s);
SqlCommand cmd = new SqlCommand("select FieldName from TableName", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "FieldName"; // FieldName of Table in DataBase
DropDownList1.DataValueField = "FieldName";
DropDownList1.DataBind();

}



Posted by 노을지기

크리스탈 리포트를 사용하면서 좋은 점도 있고 나쁜 점도 많다.

이런 저런 것을 하다보니 문제가 많이 발생하는 것이 단점..

이번 문제는 크리스탈 리포트를 불려온 후 Tool Bar에서 다음 페이지를 하면 2페이지 이상부터는 넘어가지 않고 그자리에서 있는다.

구글 검색한 결과 Page_Load 대신 Page_Init 에 넣어주면 된다.

protected void Page_Init(object sender, EventArgs e){

} 

에 코드를 넣어주면 된다. 

참고로 Page_Init 가 Load 보다 먼저 실행되므로 필요한 구문 코드도 같이 넣어야 한다.

 

 

Posted by 노을지기

ASP 장점은 쉽게 tool을 사용할 수 있다는 것이다.

텍스트 박스에 달력을 연결하려고 하니, ajax로 사용해야한다.

출처: http://www.asp.net/ajaxlibrary/act_Calendar_Simple.ashx 

원하는 포맷은 CalendarExtender의 format에서 정해주면 된다.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SimplePopupCalendar._Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
       
        <asp:TextBox ID="txtStartDate" runat="server"></asp:TextBox>
       
        <asp:CalendarExtender ID="CalendarExtender1" TargetControlID="txtStartDate"
            runat="server" Format="yyyyMMdd">
        </asp:CalendarExtender>
    </div>
    </form>
</body>
</html>
 


Posted by 노을지기

출처: http://datamart.org/2009/06/09/crystal-reports-totext-and-towards-function/

크리스탈 리포트에서 금액을 글자로 변경할 일이 있다.

구글 검색하니, Towords 함수를 사용하면 된다.

그런데, Towords({금액}, 0)을 하면 서버 환경에 따라 한글로 변경되었다.


USD로 할 경우 Towords({금액}, 2)을 하니 해결되었다.

그런데 크리스탈 레포트 레퍼런스는 어디에 있는건가? 있으면 금방 찾을텐데..

시간이 없어 다른 테스트는 못해봤다.

나중 시갈날때 업데이트.. 계획 중..

Posted by 노을지기