データベースから薬が自動的に取得され、医師が自分で服用する薬の種類、効力、頻度を書き込むことができる、医師向けの処方箋を作成する必要があります。
Gridview
だから私は、Listbox
タイプフィールド内の薬を取得したいと考えています。これは可能ですか?
第二に、薬がデータベースに存在しない場合、医師が a を編集しListbox
て追加できるようにしたいと考えています。Textboxes
最後に、効力、頻度、タイプなど、直接編集可能なフィールドがいくつか必要です。
もちろん、あなたはそれを行うことができます。TextBox
GridView内に、またはListBox
または任意のコントロールを配置するだけです。そして、それらを何らかの値で初期化するか、それに値を挿入することができます。
データリピーターコントロールであるため、必要なのはGridView内でこれらのコントロールを見つけることだけです。したがって、GridView内に1つのテキストボックスを配置し、5つのアイテムを含むリストでバインドすると、5つのそのようなテキストボックスが作成されます。レンダリングされるため、必要なtextBoxを正確に見つけることができる必要があります。
以下に、非常に簡単な例を示します。
GridViewマークアップ:
<asp:GridView ID="Review_grid" runat="server" AllowPaging="True" PageSize="10"
AutoGenerateColumns="False" onrowdatabound="Review_grid_RowDataBound"
>
<Columns>
<asp:TemplateField HeaderText="ListBox">
<ItemTemplate>
<asp:ListBox ID="lstBox" runat="server"></asp:ListBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TextBox">
<ItemTemplate>
<asp:TextBox ID="txtBox" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
コードビハインドコード。
///create datasource for your GridView.
public void BindGrid()
{
DataTable db = new DataTable();
db.Columns.Add("col1");
db.Columns.Add("col2");
db.Columns.Add("col3");
db.Rows.Add("1", "2", "3");
db.Rows.Add("1", "2", "3");
db.Rows.Add("1", "2", "3");
Review_grid.DataSource = db;
Review_grid.DataBind();
}
RowDataBound
のイベントでコントロールをトラップしGridView
て、値で初期化します。
protected void Review_grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//find ListBox
ListBox lst = (ListBox)e.Row.FindControl("lstBox");
lst.Items.Add(new ListItem("item1"));
lst.Items.Add(new ListItem("item2"));
lst.Items.Add(new ListItem("item3"));
//find textBox
TextBox txt = (TextBox)e.Row.FindControl("txtBox");
txt.Text = "test";
}
}
BindGrid()
ページのinを呼び出しPage_load
ます。
GridViewおよびその他のdataControlsについて詳しく調べる必要があります。