2011-10-04 3 views
1

나는 C#에서 asp.net 응용 프로그램을 가지고 있습니다.동시에 데이터를 선택하고 편집하는 솔루션

내가 두 개의 필드와 SQL Server 데이터베이스의 테이블이 있습니다

Field1 
Comments 

i는 사용자가 Field1을 선택하고 사용자가 그 특정 Field1

에 대한 게시물을 의견을 것입니다 추가 허용해야 서버에 다시 입력

나는 이것을 어떻게 수행합니까? 어떤 컨트롤을 사용할 수 있습니까? 이미 간단한 jquery 솔루션이 있습니까?

답변

1

이것은 사이트 설정에 따라 다릅니다. 그러나 Field1 값 목록을 DropDownList에 넣으면 하나를 선택하고 상자에 설명을 추가 할 수 있습니다.

이것은 또한 사용자 인터페이스/워크 플로에 크게 의존합니다. 이것은 이것을하기위한 가능한 많은 방법 중 하나 일뿐입니다.

코드 전면

<asp:DropDownList ID="ddlField1" runat="server"> 
    <asp:ListItem>Value1</asp:ListItem> 
    <asp:ListItem>Value2</asp:ListItem> 
    <asp:ListItem>Value3</asp:ListItem> 
    <asp:ListItem>Value4</asp:ListItem> 
</asp:DropDownList> 
<asp:TextBox ID="tbComments" runat="server" TextMode="MultiLine"></asp:TextBox> 
<asp:Button ID="btSubmit" runat="server" OnClick="btSubmit_Click"></asp:Button> 

<asp:SqlDataSource ID="sqlRecord" runat="server" 
    InsertCommand="InsertRecord" InsertCommandType="StoredProcedure"> 
    <InsertParameters> 
     <asp:Parameter Name="Field1" Type="String" /> 
     <asp:Parameter Name="Comment" Type="String" /> 
    </InsertParameters> 
</asp:SqlDataSource> 

코드이 안된 부분적인 의사 코드이지만 일반적으로 비 MVC 웹 응용 프로그램을위한 올바른 방향으로 당신을 얻을해야

public void btSubmit_Click(object sender, EventArgs e) 
{ 
    // Do your validation of the data here 
    .. 

    // Add fields and insert 
    sqlRecord.InsertParameters["Field1"].DefaultValue = ddlField1.SelectedValue; 
    sqlRecord.InsertParameters["Comment"].DefaultValue = tbComment.Text; 
    sqlRecord.Insert(); 
} 

뒤에. 또한 이것은 JavaScript/jQuery, ASP.NET 및 C#을 사용하지 않습니다.

+0

당신이 도와 주시기 바랍니다 수 http://stackoverflow.com/questions/7655124/asp-net-updating-database-with-checkboxes –

2

드롭 다운에 가능한 선택을 넣은 다음 jquery를 사용하여 컨트롤러에서 데이터를 가져 오는 JSON 요청을 작성한 다음 다른 JavaScript 함수를 호출하는 저장 버튼을 사용하여 수정 된 데이터를 컨트롤러에 다시 게시하십시오. .

컨트롤러 :

public ActionResult GetFields() 
{ 
var model=new MyModel(); 
model.Selections =(from m in database.table select m.Field1).ToList(); 
return View(model); 
} 

public ActionResult GetComments(string field1) 
{ 
return Content((from c in database.table where(c.Field1==field1)select c.Comments).First()); 
} 

[HttpPost] 
public void SaveComments(string field1, string comments) 
{ 
var record=(from r in database.table where(r.Field1==field1)select r).First(); 
record.Comments=comments; 
database.SaveChanges; 
return; 
} 

보기 :

<script type="text/javascript> 
function SaveComments(){ 
var url='@Url.Action("GetComments","YourControllerName"); 
url+='?field1='+$('#selections option:selected').text(); 
$('#selectedField').text($('#selections option:selected').text()); 
$('#commentEditor').load(url); 
}; 

function SaveComments(){ 
var url='@Url.Action("SaveComments","YourControllerName")'; 
url+='?field1='+$('#selections option:selected').text()+'&comments='+$('#commentEditor').text(); 
$('#dummy').load(url); 
}; 
</script> 

<select id="selections" onchange="SelectionChanged()"> 
@foreach(var item in Model.Selections) 
{ 
<option value="@item">@item</option> 
} 
</select> 
<div id="selectedField"/> 
<input type="text" id="commentEditor"/> 
<input type="button" value="apply" onclick="SaveComments()"/> 
<div id="dummy"/> 

면책 조항 :이 작은 오류 (일반적으로 텍스트 상자에 코드의 큰 덩어리 쓰지 않는다 : P)에있을 수 있습니다, 당신을 아마도 dummy div를 사용하지 않아야하고, Selection의 값을 기반으로 get이 반환하는 List를 뷰 모델에 있어야합니다. 이것은 당신에게 일반적인 아이디어를 줄 것이다.

+0

예 바랍니다. –

+0

아니 MVC 그냥 일반 웹 응용 프로그램을하시기 바랍니다 –

+0

죄송합니다, 거기에 내 전문 지식, 아마도 누군가가 윌 당신을 위해 그것을 변환하지만 잘하면 내가 뭘했는지의 이론을 이해하고 자신의 프로젝트에 적용 할 수 있습니다. 그것은 잘라 내기 및 붙여 넣기 코드 블록이 될 결코 의미가 없었어요 :) –

관련 문제