1
 strSQL = "SELECT * FROM User_Reg WHERE User_ID='" + UserId + "'";
           DataTable dataTablerepeaterUserList = null;
           dataTablerepeaterUserList =objSqlDbComm.ExecuteDatasetQuery(strSQL).Tables[0];


foreach (DataRow dr in dataTablerepeaterUserList.Rows)
{   
   ddlTitle.SelectedItem.Text = dr["Title"].ToString();
}


 <asp:DropDownList ID="ddlTitle" runat="server" CssClass="csstextbox" >
      <asp:ListItem>Mr.</asp:ListItem>
      <asp:ListItem>Mrs.</asp:ListItem>
      <asp:ListItem>Miss.</asp:ListItem>
     <asp:ListItem>Dr.</asp:ListItem>
 </asp:DropDownList>

たとえば、dr["Title"]=Dr. 次に、Mr. を Dr. で上書きすると、次のような結果が得られました。

| Dr.  |
| Mrs. |
| Miss.|
| Dr.  |

クエリ文字列を使用して、ユーザーの編集目的でUser_ID を からView_User.aspxに渡しています。Create_User.aspxId が適切になり、すべての正しいフィールドが に表示されCreate_User.aspxます。すべてのコントロールが正しいデータを適切に取得します。しかし、現在のユーザーのタイトルを入力すると、の最初のアイテムで上書きされますDropDownListDropDownList(私はそれが上書きされるという問題しかありません)。

4

3 に答える 3

0

ユーザーIDごとに特定のユーザーのデータを取得しているため、単一のレコードを取得します。したがって、dataTablerepeaterUserListのforループを使用する必要があります。行が存在するかどうかを確認してから使用してください。お気に入り

if (dataTablerepeaterUserList.rows.count > 0)
{
     ForEach(ListItem  itm  In ddlTitle.Items)
     {
            If (itm.Text = dataTablerepeaterUserList.Rows[0].tostring())
            {
                  itm.Selected = True;
            }
     }
}
于 2012-04-17T12:40:26.537 に答える
0

それはあなたのコードとまったく同じです:

デフォルトでは、ドロップダウン リストの最初の要素が選択されており、それを上書きしています。

于 2012-04-17T12:34:27.493 に答える
0

コードの問題は、最初のの.textプロパティを上書きしているだけです。 ListItemDropDownList

あなたがしたいことは、必要な既存のものを見つけて、適切なアイテムが選択されるようにプロパティをListItem変更することです。これはあなたのために働くはずです:SelectedIndexDropDownList

// Find the correct list item in the drop down based on your data
ListItem theItemYouWant = ddlTitle.Items.FindByText(dr["Title"].ToString());
// Change the selected index to that items index
ddlTitle.SelectedIndex = ddlTitle.Items.IndexOf(theItemYouWant);

補足として、例のように、SQL で文字列を連結しないでください。これにより、SQL インジェクション攻撃を受けやすくなります。代わりに、次のようにパラメーターを使用する必要があります。

strSQL = "SELECT * FROM User_Reg WHERE User_ID = @User_ID";

次に、クエリを実行する場所に「@User_ID」をパラメーターとして追加します。

于 2012-04-17T12:49:41.037 に答える